exponenta event banner

гладкий

Данные о плавном отклике

Описание

пример

yy = smooth(y) сглаживает данные ответа в векторе столбца y с использованием фильтра скользящего среднего.

Первые несколько элементов yy следуйте.

yy(1) = y(1)
yy(2) = (y(1) + y(2) + y(3))/3
yy(3) = (y(1) + y(2) + y(3) + y(4) + y(5))/5
yy(4) = (y(2) + y(3) + y(4) + y(5) + y(6))/5
...
Из-за пути smooth обрабатывает конечные точки, результат отличается от результата, возвращенного filter функция.

yy = smooth(y,span) устанавливает интервал скользящего среднего в span.

yy = smooth(y,method) сглаживает данные в y используя метод, указанный method и значение по умолчанию span.

пример

yy = smooth(y,span,method) задает диапазон method кому span.

yy = smooth(y,'sgolay',degree) использует метод Савицки-Голая с полиномиальной степенью, указанной degree.

yy = smooth(y,span,'sgolay',degree) использует количество точек данных, указанное span в подсчёте Савицкого - Голая. span должно быть нечетным и degree должно быть меньше, чем span.

пример

yy = smooth(x,y,___) задает значения для независимой переменной x. Этот синтаксис можно использовать с любым из аргументов в предыдущих синтаксисах.

gpuarrayYY = smooth(gpuarrayY,___) выполняет операцию над графическим процессором с использованием gpuArray данные. Вы можете использовать gpuArray данные ответа со всеми предыдущими синтаксисами. Этот синтаксис требует Toolbox™ параллельных вычислений.

gpuarrayYY = smooth(gpuarrayX,gpuarrayY,___) выполняет операцию над графическим процессором с использованием gpuArray входные данные. Для этого синтаксиса требуется панель инструментов параллельных вычислений.

Примечание

Используя gpuArray x и y входы с smooth функция рекомендуется только при использовании метода по умолчанию, 'moving'. Использование данных графического процессора с другими методами не дает никаких преимуществ в производительности.

Примеры

свернуть все

Сглаживание данных по линейному индексу и по каждому столбцу отдельно с использованием фильтра скользящего среднего. Постройте график и сравните результаты.

Загрузить данные в count.dat. Массив 24 на 3 count содержит подсчет трафика на трех перекрестках за каждый час дня.

load count.dat

Предположим, что данные получены с одного пересечения в течение трех последовательных дней. Сглаживание всех данных вместе указывало бы общий цикл потока трафика через перекресток. Используйте фильтр скользящего среднего с 5-часовым интервалом для одновременного сглаживания всех данных (по линейному индексу).

c = smooth(count(:));
C1 = reshape(c,24,3);

Однако данные фактически поступают с трех разных пересечений. Таким образом, сглаживание столбцами дает более значимую картину трафика через каждый перекресток за день. Для сглаживания каждого столбца данных по отдельности используется один и тот же фильтр скользящего среднего.

C2 = zeros(24,3);
for I = 1:3
    C2(:,I) = smooth(count(:,I));
end

Постройте график исходных данных и данных, сглаженных по линейному индексу и по каждому столбцу отдельно. Затем постройте график разницы между двумя сглаженными наборами данных. Два метода дают разные результаты вблизи конечных точек.

subplot(3,1,1)
plot(count,':');
hold on
plot(C1,'-');
title('Smooth C1 (All Data)')

subplot(3,1,2)
plot(count,':');
hold on
plot(C2,'-');
title('Smooth C2 (Each Column)')

subplot(3,1,3)
plot(C2 - C1,'o-')
title('Difference C2 - C1')

Figure contains 3 axes. Axes 1 with title Smooth C1 (All Data) contains 6 objects of type line. Axes 2 with title Smooth C2 (Each Column) contains 6 objects of type line. Axes 3 with title Difference C2 - C1 contains 3 objects of type line.

Постройте график и сравните результаты данных, сглаженных с помощью loess и rloess методы. Затем определите, какой метод менее чувствителен к отклонениям.

Создание шумных данных с двумя отклонениями.

x = (0:0.1:15)';
y = sin(x) + 0.5*(rand(size(x))-0.5);
y([90,110]) = 3;

Сглаживание данных с помощью loess и rloess методы. Используйте интервал в 10% от общего количества точек данных.

yy1 = smooth(x,y,0.1,'loess');
yy2 = smooth(x,y,0.1,'rloess');

Постройте график исходных и сглаженных данных. Отклонения оказывают меньшее влияние с помощью надежного метода rloess.

subplot(2,1,1)
plot(x,y,'b.',x,yy1,'r-')
set(gca,'YLim',[-1.5 3.5])
legend('Original data','Smoothed data using ''loess''',...
       'Location','NW')
   
subplot(2,1,2)
plot(x,y,'b.',x,yy2,'r-')
set(gca,'YLim',[-1.5 3.5])
legend('Original data','Smoothed data using ''rloess''',...
       'Location','NW')

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent Original data, Smoothed data using 'loess'. Axes 2 contains 2 objects of type line. These objects represent Original data, Smoothed data using 'rloess'.

Входные аргументы

свернуть все

Данные для сглаживания, заданные как вектор столбца.

Если данные содержат NaNs и вы не указываете x, ваши данные обрабатываются как неоднородные и метод сглаживания 'lowess' используется.

Типы данных: single | double

Число точек данных для вычисления сглаженного значения, заданного как целое число или как скалярное значение в диапазоне (0,1), обозначающее долю от общего числа точек данных.

При использовании скользящего среднего или методов Савицки-Голая количество точек данных для вычисления сглаженного значения должно быть нечетным целым числом. При указании span как четное число или как дробь, которая приводит к четному числу точек данных, span автоматически уменьшается на 1.

Пример: 7; 0.6

Метод сглаживания для сглаживания данных ответа, указанный как один из следующих методов.

Метод

Описание

'moving' (по умолчанию)

Скользящее среднее. Фильтр нижних частот с коэффициентами фильтра, равными обратному значению диапазона.

'lowess'

Локальная регрессия с использованием взвешенных линейных наименьших квадратов и полиномиальной модели 1-й степени.

'loess'

Локальная регрессия с использованием взвешенных линейных наименьших квадратов и полиномиальной модели 2-й степени.

'sgolay'

Фильтр Савицкого-Голая. Обобщенное скользящее среднее с коэффициентами фильтра, определяемыми невзвешенной линейной регрессией методом наименьших квадратов и полиномиальной моделью заданной степени (по умолчанию - 2). Способ может принимать неоднородные данные предиктора.

'rlowess'

Надежная версия 'lowess' что назначает меньший вес отклонениям в регрессии. Метод присваивает нулевой вес данным за пределами шести средних абсолютных отклонений.

'rloess'

Надежная версия 'loess' что назначает меньший вес отклонениям в регрессии. Метод присваивает нулевой вес данным за пределами шести средних абсолютных отклонений.

Степень полинома для модели, используемой в методе Савицки-Голая, заданная как скалярное значение. degree должно быть меньше, чем span.

Пример: 3

Независимая переменная для данных ответа y, указан как вектор столбца. Если вы не предоставите x, методы, которые требуют x принять x = 1:length(y). Определить x данные при y не отсортирован или равномерно разнесен. Если x не является однородным и вы не указываете method, lowess используется. Если указан метод сглаживания, который требует x для сортировки функция автоматически сортирует x данные.

Типы данных: single | double

Данные для сглаживания, указанные как gpuArray вектор столбца.

Типы данных: single | double

Входные данные для данных ответа gpuarrayY, указано как gpuArray вектор столбца. Если вы не предоставите gpuarrayX, методы, которые требуют gpuarrayX принять gpuarrayX = 1:length(y). Определить gpuarrayX данные, если данные расположены неравномерно или не отсортированы. Если gpuarrayX данные не являются однородными, и метод сглаживания не задан, 'lowess' используется. Если указан метод сглаживания, который требует gpuarrayX для сортировки функция автоматически сортирует gpuarrayX данные.

Типы данных: single | double

Выходные аргументы

свернуть все

Сглаженные данные, возвращаемые в виде вектора столбца.

Сглаженные данные, возвращенные как gpuArray вектор столбца.

Совет

  • Дополнительные параметры сглаживания данных, включая скользящую медиану и методы Гаусса, см. в разделе smoothdata.

  • Сглаживание данных можно создать с помощью сглаживающего сплайна. Дополнительные сведения см. в разделе fit.

Расширенные возможности

Представлен до R2006a