天天看點

将matlab折線圖平滑化

參考文獻:http://blog.csdn.net/steelbasalt/article/details/48756143

有兩種方法可以畫平滑曲線,第一種是拟合的方法,第二種是用spcrv,其實原理應該都一樣就是插值。下面是源程式,大家可以根據需要自行選擇,更改拟合的參數。

clc,clear;

a = 1:1:6; %橫坐标

b = [8.0 9.0 10.0 15.0 35.0 40.0]; %縱坐标

plot(a, b, ‘b’); %自然狀态的畫圖效果

hold on;

%第一種,畫平滑曲線的方法

c = polyfit(a, b, 2); %進行拟合,c為2次拟合後的系數

d = polyval(c, a, 1); %拟合後,每一個橫坐标對應的值即為d

plot(a, d, ‘r’); %拟合後的曲線

plot(a, b, ‘‘); %将每個點 用畫出來

hold on;

%第二種,畫平滑曲線的方法

values = spcrv([[a(1) a a(end)];[b(1) b b(end)]],3);

plot(values(1,:),values(2,:), ‘g’);

效果如下:

将matlab折線圖平滑化

繼續閱讀