您的位置:首页 > 编程语言 > MATLAB

matlab 曲线拟合

2017-04-29 10:20 281 查看
最近常用matlab画图,画完也没有保存代码的习惯,整理一下,下次画类似的图直接粘代码填数据就好了

一次拟合

x=[10 50 100 150 200 250 300 350];
y1=[9.43 7.93 6.84 6.02 6.32 5.74 5.29 4.90];
y2=[14.15 13.69 11.05 9.70 10.15 9.13 8.62 8.26];
xi=(10:0.1:350);
yi1=interp1(x,y1,xi,'spline');
yi2=interp1(x,y2,xi,'spline');
figure;
plot(xi,yi1,'-')
hold on;
plot(xi,yi2,'--');
hold on;
legend('西勒','克拉泼')
plot(x,y1,'o');
hold on;
plot(x,y2,'o');
xlabel('电容C(pf)');
ylabel('振荡频率f(MHz)');
title('频率与电容关系曲线');

n次拟合

代码为二次拟合,将ployfit中的2改为n,n为想要拟合的次数

x1=[9.43 7.93 6.84 6.02 6.32 5.74 5.29 4.90];
x2=[14.15 13.69 11.05 9.70 10.15 9.13 8.62 8.26];
y1=[1.36 1.44 1.34 1.26 0.94 0.88 0.80 0.68];
y2=[0.15 0.74 1.20 1.48 0.96 1.28 1.48 1.62];
[p21,s21]=polyfit(x1,y1,2);
[p22,s22]=polyfit(x2,y2,2);
y21=polyval(p21,x1);
y22=polyval(p22,x2);
figure;
plot(x1,y21,'-')
hold on;
plot(x2,y22,'--');
hold on;
legend('西勒','克拉泼')
plot(x1,y1,'o');
hold on;
plot(x2,y2,'o');
xlabel('频率f(MHz)');
ylabel('输出电压Vp-p(v)');
title('频率与幅度曲线');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: