我有一个由循环产生的未知向量。每次创建一个,我想将它添加到矩阵。
例如,假设我的变量包含p
。
第一轮我有矢量[ 1 2 3 ]
然后我希望p
成为
[ 1 2 3 ]
然后我产生了矢量[ 4 4 5 6 6 ]
然后我想要包含
[ 1 2 3 ]
[ 4 4 5 6 6 ]
所以我可以像p(1)
那样访问第一个向量,然后p(2)
做第二个向量。
我可以使用的最接近的代表是什么?
答案 0 :(得分:3)
矩阵需要是矩形的,因为MATLAB不像瑞士奶酪。您可以获得最接近该表示的是单元格:
p{1} = [1 2 3];
p{2} = [ 4 4 5 6 6 ];
由于它们允许不规则形状的矩阵甚至是元素上的非均匀数据类型,因此使用单元格比使用矩阵更麻烦,但至少它们能够满足您的要求。
另一种选择是零填充我会说:
p = [1 2 3];
newvec = [ 4 4 5 6 6 ];
if length(newvec)>length(p)
p = [p zeros(size(newvec)-size(p))];
else
newvec = [newvec zeros(size(p)-size(newvec))];
end