matlab中如何画出这些数据的图形,要连续的曲线。

x=[585654484033200-20-40-48-50-53-585653504820036-48-54-55-55];>>y=[14001200100050015... x=[58 56 54 48 40 33 20 0 -20 -40 -48 -50 -53 -58 56 53 50 48 20 0 36 -48 -54 -55 -55];
>> y=[1400 1200 1000 500 150 0 -280 -450 -600 -800 -1000 -1100 -1200 -1400 1300 1200 1100 1000 650 500 0 -500 -900 -1100 -1200];

高手们帮帮忙
matlab中如何画出这些数据的图形,要连续的曲线。不需要散点图。听说需要三次样条插值
展开
 我来答
qlb061
2011-06-15
知道答主
回答量:13
采纳率:0%
帮助的人:10.1万
展开全部
直接使用plot(x,y)命令,默认的连线是实线,不会出现间断部分的!插值是为了在少量的数据中产生更多能够拟合原来趋势的数据序列,使得它们看起来更光滑,意思就是这样了!
如果你想插值的话:比如步长为0.5,数据将进扩大两倍(其实少一个)
x1=x(1):.5:x(end);
y1=interp1(x,y,x1,'spline');
plot(x1,y1.'-.*'); 为了能让你看清数据点,使用了'-.*'
yuanleyi_yly
2011-06-16 · TA获得超过1655个赞
知道小有建树答主
回答量:491
采纳率:0%
帮助的人:538万
展开全部
x(21)有问题,应该是-36,不是36.
clear;clc;close all;
warning off all;
x=[58 56 54 48 40 33 20 0 -20 -40 -48 -50 -53 -58 56 53 50 48 20 0 -36 -48 -54 -55 -55];
y=[1400 1200 1000 500 150 0 -280 -450 -600 -800 -1000 -1100 -1200 -1400 1300 1200 1100 1000 650 500 0 -500 -900 -1100 -1200];
%数据构成循环,并作出反函数:
X=[y(1:14),y(end:-1:15),y(1)];
Y=[x(1:14),x(end:-1:15),x(1)];
%绘制原图形的概貌
plot(X,Y);
hold on;
%拟合成两条三次曲线:
for n=1:3:12,
X1=X(n:n+3);
Y1=Y(n:n+3);
A1=polyfit(X1,Y1,3);
%提取系数:
a1=A1(1);
b1=A1(2);
c1=A1(3);
d1=A1(4);
%画拟合曲线:
X1=min(X1):max(X1);
plot(X1,a1.*X1.^3+b1.*X1.^2+c1.*X1+d1,'r');
end;
for n=15:3:length(X)-3,
X2=X(n:n+3);
Y2=Y(n:n+3);
A2=polyfit(X2,Y2,3);
a2=A2(1);
b2=A2(2);
c2=A2(3);
d2=A2(4);
X2=min(X2):max(X2);
plot(X2,a2*X2.^3+b2*X2.^2+c2.*X2+d2,'r');
end;
plot(X(13:15),Y(13:15),'r');
plot(X(24:end),Y(24:end),'r');
hold off;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiongxionghy
2011-06-15 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1753
采纳率:75%
帮助的人:2921万
展开全部
你的x和y是一个点的坐标呢,还是分开的两串数据?
更多追问追答
追问
x,y是点的坐标,我已经在matlab中输入好了,方便复制
追答
clc;
clear;
x=[58 56 54 48 40 33 20 0 -20 -40 -48 -50 -53 -58 56 53 50 48 20 0 36 -48 -54 -55 -55];
y=[1400 1200 1000 500 150 0 -280 -450 -600 -800 -1000 -1100 -1200 -1400 1300 1200 1100 1000 650 500 0 -500 -900 -1100 -1200];
z=x+i*y;
tx1=1:length(x);
tx2=1:0.01:length(x);
ty1=1:length(y);
ty2=1:0.01:length(y);
xx=interp1(tx1,x,tx2,'cubic');
yy=interp1(ty1,y,ty2,'cubic');
zz=xx+i*yy;
figure(1)
hold on
for idx=1:length(x)
plot(real(z(idx)),imag(z(idx)),'b*')
text(real(z(idx)),imag(z(idx)), int2str(idx));
end
plot(zz,'-b')

**************************************
看这个吧,刚才写的画图的时候有点不好。这个看的清楚点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式