下段代码哪里有问题?为什么matlab总说超过了矩阵尺寸?

2025-03-12 13:26:00
推荐回答(3个)
回答1:

你的错误之处在于你
for j=1:20
if (z(j)<15)
z(:,j)=[];
k=k+1;
end
end

这个循环不对,因为z(:,j)=[];相当于把这个元素删除,z数组长度会变短,你还for j=1:20。显然你错了

回答2:

你的m和n、z(m)和z(n)都是一样的,为什么要写两句?会不会是这样,他认为z(j)就是一个矩阵,一个矩阵跟一个实数是没办法比较大小的。

回答3:

改成下面的就行了
aa=length(z)
for j=aa:1
if (z(j)<15)
z(:,j)=[];
k=k+1;
end
end
从后往前对数组操作