如何为每一行设置不同向量的X行矩阵?

时间:2016-09-25 18:39:17

标签: matlab vector

我有一个由循环产生的未知向量。每次创建一个,我想将它添加到矩阵。

例如,假设我的变量包含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)做第二个向量。

我可以使用的最接近的代表是什么?

1 个答案:

答案 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