如何用MATLAB 实现数据的动态存储

来源:百度知道 编辑:UC知道 时间:2024/06/08 20:56:10
现在有一个path=50*16的矩阵,其中有一些为零元素,想设计程序将零元素剔除,按行剔除每行剔除后存到一个行向量中便于调用,代码如下:
for i=1:50
A=path(i,:)
A=A(A>0)
path(i)=A
end
但由于path(i)在原有的未处理的矩阵中为16个元素的行向量,所以就会报错:
??? In an assignment A(I) = B, the number of elements in B and
I must be the same.
哪位高人给提供一方法,使我的想法能实现,最主要的是将矩阵的零元素去掉且能存储
多谢

可以先定义一个向量
vector = [];
for i = 1:50
A=path(i,:);
A=A(A>0);
vector = horzcat(vector,A);
end
clear path; %清除原来的变量

可以这样做:
for i=1;50
A=path(i,:);
A=A(A>0);
path(i,1:length(A))=A;
end;
不过由于A的长度小于path的行长度 因此 最后多出来的部分并没有被覆盖掉
处理数据的时候要注意