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('原始数据','插值后');

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)