matlab程序中,如何解决矢量长度必须相同的问题

主要原因就是画图的x和y长度不一样,我用一个例子说明。

问题代码:

clear all;close all;clc;

x = 0 : 1: 9;

y = sin(x);

n = 2*length(x);

yi = interpft(y, n);

xi = 0 : 0.5 : 10;

hold on ;

plot(x, y ,'ro');

plot(xi, yi, 'b.-');

plot(x, sin(x),'m--');

legend('原始数据','插值后');

 

第一步:计算所有矢量的长度

代码更正如下:

clear all;close all;clc;

x = 0 : 1: 9;

y = sin(x);

n = 2*length(x);

a1=n

yi = interpft(y, n);

a2=n

xi = 0 : 0.5 : 10;

a3 =length(xi)

从结果可以看出,a3=21,问题就出现在这,所以就调整xi的值,使a3=20。

第二步:更改相应矢量长度,使之相等

clear all;close all;clc;

x = 0 : 1: 9;

y = sin(x);

n = 2*length(x);

a1=n

yi = interpft(y, n);

a2=n

xi = 0 : 0.5 : 9.5;

a3 =length(xi)

hold on ;

plot(x, y ,'ro');

plot(xi, yi, 'b.-');

plot(x, sin(x),'m--');

legend('原始数据','插值后');

第三步:把添加用于计算观察矢量长度的的代码删除。

clear all;close all;clc;

x = 0 : 1: 9;

y = sin(x);

n = 2*length(x);

yi = interpft(y, n);

xi = 0 : 0.5 : 9.5;

hold on ;

plot(x, y ,'ro');

plot(xi, yi, 'b.-');

plot(x, sin(x),'m--');

legend('原始数据','插值后');

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心网千结

若有所帮助,请点赞支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值