MATLAB用plot拟合数据~我现在有三组数据,x是一样的就y不一样,然后想把三条曲线拟合在一张图上~

2024年11月16日 05:31
有2个网友回答
网友(1):

x=(1:1:10)';
y1=x.^2+5*rand(size(x));
y2=x.^2+5*rand(size(x))+10;
y3=x.^2+5*rand(size(x))+20;
%y1,y2,y3是三组数据,这里用函数加随机噪声代替
%注意x,y1,y2,y3要是长度相等的列向量
p1=polyfit(x,y1,2);
fity1=polyval(p1,x);
p2=polyfit(x,y2,2);
fity2=polyval(p2,x);
p3=polyfit(x,y3,2);
fity3=polyval(p3,x);
%fity1,fity2,fity3是三组拟合的数据

plot(x,[y1 y2 y3],'o'); hold on; %以点画原来的数据
plot(x,[fity1 fity2 fity3],'-'); hold off;%以线画拟合的曲线

网友(2):

你说的拟合是什么意思,拟合的话应该是没有原曲线的。 是就是在一张图上话三条曲线吧?
假设画y=sin(x),y=2*sin(x),y=3*sin(x)

x=-pi:0.01:pi;
y1=sin(x);
y2=2.*sin(x);
y3=3.*sin(x);
plot(x,y1,'b.-',x,y2,'r:',x,y3,'m');

这样话就可以