EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
自然状态下,用plot画的是折线,而不是平滑曲线。 有两种方法可以画平滑曲线,第一种是拟合的方法,第二种是用spcrv,其实原理应该都一样就是插值。下面是源程序,大家可以根据需要自行选择,更改拟合的参数。 clc,clear;$ s9 O: t. F+ e% F) N. \. y# U
a = 1:1:6; %横坐标
- s7 Z2 _, l& }: h6 Qb = [8.0 9.0 10.0 15.0 35.0 40.0]; %纵坐标0 {3 F" z5 P! d
plot(a, b, 'b'); %自然状态的画图效果, G3 _5 o9 \/ t7 E1 O$ ]; k; Z
hold on;, p" G7 B0 n0 M
%第一种,画平滑曲线的方法
5 R% v9 f+ c( r s& L8 Sc = polyfit(a, b, 2); %进行拟合,c为2次拟合后的系数& t! \( x" T' f J1 y6 ~3 o
d = polyval(c, a, 1); %拟合后,每一个横坐标对应的值即为d* N# F9 t8 J5 B" s+ F, M
plot(a, d, 'r'); %拟合后的曲线 plot(a, b, '*'); %将每个点 用*画出来! X! ?% q; Q- l$ O. ^
hold on;
. _0 N% l9 J8 V) M; }& M; C%第二种,画平滑曲线的方法
2 [. r* j& s2 w0 t& `2 b8 z0 e2 Y8 Tvalues = spcrv([[a(1) a a(end)];[b(1) b b(end)]],3);
5 T% |: Z% f) Fplot(values(1, ,values(2, , 'g'); 效果:
个人感觉后一种方法要好一些
$ U- H2 K# Z! Z0 T |