реклама на сайте
подробности

 
 
> Matlab, Плавный график
Nidxogg
сообщение May 26 2012, 21:24
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 10-03-12
Пользователь №: 70 708



Здравствуйте, помогите пож-а сделать плавный график у функции в Matlabe

Собственно строится график в логарифмическом масшатбе по одной из осей. x1, y1...xn,y1 - массивы одинакового размера(строка), по 10 элементов в каждом
Строю по функции:
semilogy(x1, y1, x2, y1, x3, y1, x4, y1, x5, y1, x6, y1);
Получается слишком угловато(т.к мало значений). Пробовал стандартные функции сглаживания(Сплайн, полиномы и т.д)
Но получается далековато от реальных значений. Непонятные выбросы.

Когда то давно пользовался функцией
Цитата
function [ploValFun] = approFun(valFun)
koeffPol = 10;
lenValFun = length(valFun);
polFitFun = polyfit(1:lenValFun,valFun,koeffPol);
outPol = polFitFun(2);
ploValFun = polyval(polFitFun,1:lenValFun);

Но сейчас не получается её пристроить к функции выше.

Сообщение отредактировал Nidxogg - May 26 2012, 21:26
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
RHnd
сообщение May 28 2012, 07:08
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Добрый день!

Не очень понятен вопрос. Почему у вас для разных x строится один и тот же y? Это принципиально для вопроса? Или достаточно разобраться со сглаживанием x1,y1? Что именно вы пытаетесь сделать представленной функцией? По идее, вам надо для каждого вектора набрать еще точек внутри интервала и интерполировать на них. Например да, полиномом.
Можете выложить пример данных, чтоб было понятнее.
Go to the top of the page
 
+Quote Post
Nidxogg
сообщение May 28 2012, 08:13
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 10-03-12
Пользователь №: 70 708



Здравствуйте.
Графики строятся по точкам. И отсчеты по Y для всех Х-в одинаковые.
Залил *.fig файл
http://tempfile.ru/file/2447940

Go to the top of the page
 
+Quote Post
RHnd
сообщение May 28 2012, 20:01
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Добрый день!

На мой взгляд, вполне приличные графики. Вы уверены что хотите их именно сгладить? Могу предложить:
x=[x values];
y=[y values];
xin=linspace(min(x),max(x),length(x)*10);
yin=10.^interp1(x,log10(y),xin);
semilogy(x,y,xin,yin); grid;

Может, вы держите в уме какую-то кривую, которая лежит между точек и хотите описать ее, провести аппроксимацию? Тогда хорошо бы иметь априорные данные о форме кривой, ее уравнении. А затем найти параметры, которые описывают кривую, аппроксимирующую экспериментальные данные.
Go to the top of the page
 
+Quote Post
Nidxogg
сообщение May 28 2012, 22:48
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 10-03-12
Пользователь №: 70 708



Спасибо
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 19:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016