تبلیغات
مهندسی مکانیک و هوافضا - نرم کردن نمودار در متلب ( smoothing plot )
هر آنچه که یک مهندس بخواهد اینجا هست!
 
آخرین مطالب
 
محبوبترین ها ی سایت
نرم کردن نمودار در متلب ( smoothing plot )

smooth

Smooth response data

Syntax

yy = smooth(y)
gpuarrayYY = smooth(gpuarrayY)
yy = smooth(y,span)
yy = smooth(y,method)
yy = smooth(y,span,method)
yy = smooth(y,'sgolay',degree)
yy = smooth(y,span,'sgolay',degree)
yy = smooth(x,y,...)

Description

yy = smooth(y) smooths the data in the column vector y using a moving average filter. Results are returned in the column vector yy. The default span for the moving average is 5.

The first few elements of yy are given by

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
...

Because of the way endpoints are handled, the result differs from the result returned by the filter function.

gpuarrayYY = smooth(gpuarrayY) performs the operation on a GPU. The input gpuarrayY is a gpuArray column vector. The output gpuarrayYY is a gpuArray column vector. This syntax requires the Parallel Computing Toolbox™.

    Note:   You can use gpuArray x and y inputs with the smooth function, but this is only recommended with the default 'method', 'moving'. Using GPU data with other methods does not offer any performance advantage.

yy = smooth(y,span) sets the span of the moving average to spanspan must be odd.

yy = smooth(y,method) smooths the data in y using the method method and the default span. Supported values for method are listed in the table below.

method

Description

'moving'

Moving average (default). A lowpass filter with filter coefficients equal to the reciprocal of the span.

'lowess'

Local regression using weighted linear least squares and a 1st degree polynomial model

'loess'

Local regression using weighted linear least squares and a 2nd degree polynomial model

'sgolay'

Savitzky-Golay filter. A generalized moving average with filter coefficients determined by an unweighted linear least-squares regression and a polynomial model of specified degree (default is 2). The method can accept nonuniform predictor data.

'rlowess'

A robust version of 'lowess' that assigns lower weight to outliers in the regression. The method assigns zero weight to data outside six mean absolute deviations.

'rloess'

A robust version of 'loess' that assigns lower weight to outliers in the regression. The method assigns zero weight to data outside six mean absolute deviations.

yy = smooth(y,span,method) sets the span of method to span. For the loess and lowess methods, span is a percentage of the total number of data points, less than or equal to 1. For the moving average and Savitzky-Golay methods, span must be odd (an even span is automatically reduced by 1).

yy = smooth(y,'sgolay',degree) uses the Savitzky-Golay method with polynomial degree specified by degree.

yy = smooth(y,span,'sgolay',degree) uses the number of data points specified by span in the Savitzky-Golay calculation. span must be odd and degree must be less than span.

yy = smooth(x,y,...) additionally specifies x data. If x is not provided, methods that require x data assume x = 1:length(y). You should specify x data when it is not uniformly spaced or sorted. If x is not uniform and you do not specify methodlowess is used. If the smoothing method requires x to be sorted, the sorting occurs automatically.

Examples

                                                                           read more..

Load the data in count.dat:

load count.dat

The 24-by-3 array count contains traffic counts at three intersections for each hour of the day.

First, use a moving average filter with a 5-hour span to smooth all of the data at once (by linear index) :

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

Plot the original data and the smoothed data:

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

Second, use the same filter to smooth each column of the data separately:

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

Again, plot the original data and the smoothed data:

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

Plot the difference between the two smoothed data sets:

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

Note the additional end effects from the 3-column smooth.

Examples

Create noisy data with outliers:

x = 15*rand(150,1); 
y = sin(x) + 0.5*(rand(size(x))-0.5);
y(ceil(length(x)*rand(2,1))) = 3;

Smooth the data using the loess and rloess methods with a span of 10%:

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

Plot original data and the smoothed data.

[xx,ind] = sort(x);
subplot(2,1,1)
plot(xx,y(ind),'b.',xx,yy1(ind),'r-')
set(gca,'YLim',[-1.5 3.5])
legend('Original Data','Smoothed Data Using ''loess''',...
       'Location','NW')
subplot(2,1,2)
plot(xx,y(ind),'b.',xx,yy2(ind),'r-')
set(gca,'YLim',[-1.5 3.5])
legend('Original Data','Smoothed Data Using ''rloess''',...
       'Location','NW')

Note that the outliers have less influence on the robust method.



مرتبط با: متلب ( MATLAB ) ,
می توانید دیدگاه خود را بنویسید
شیدا شنبه 20 شهریور 1395 12:39 ب.ظ
سلام
من یه سوال دارم.
من یه برنامه متلب دارم که نمودار آن در انتها نوسان داره.این نوسان را چطوری باید از بین ببرم؟
معادلات جرم و حرارت را با روش ضمنی حل کردم
حسین اتحادی پاسخ داد:
سلام ، باید کدتون رو ببینم، ولی اگر نوسانات محدود باشه ، پیشنهاد میکنم از دستور smooth استفاده کنید .
شیدا شنبه 20 شهریور 1395 12:28 ب.ظ
سلام
من یه سوال دارم.
من یه برنامه متلب دارم که نمودار آن در انتها نوسان داره.این نوسان را چطوری باید از بین ببرم؟
معادلات جرم و حرارت را با روش ضمنی حل کردم
niloooooo دوشنبه 1 شهریور 1395 11:21 ب.ظ
روزتون پر از رنگهاى قشنگ، پر از خبرهاى خوب، سرشار از انرژى مثبت و یه عالمه لبخند خیلی افتخار میدید پیش من هم بیاین
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر
نظرات پس از تایید نشان داده خواهند شد.