Arrays 如何在MATLAB中连接向量以创建非矩形矩阵?

Arrays 如何在MATLAB中连接向量以创建非矩形矩阵?,arrays,matlab,jagged-arrays,Arrays,Matlab,Jagged Arrays,有没有办法创建非矩形矩阵?例如,如果我有一个矩阵a=[6 8 10]和另一个矩阵b=[1 5],我可以垂直连接它们,以便在一行中获得[6 8 10],在另一行中获得[1 5]。直接答案是否。MATLAB不支持。解决这个问题的一种方法是制作一个单元格数组,其中每个单元格都是长度不等的向量 比如: a = [6 8 10]; b = [1 5]; c = cell(1,2); c{1} = a; c{2} = b; celldisp(c) c{1} = 6 8 10

有没有办法创建非矩形矩阵?例如,如果我有一个矩阵
a=[6 8 10]
和另一个矩阵
b=[1 5]
,我可以垂直连接它们,以便在一行中获得
[6 8 10]
,在另一行中获得
[1 5]

直接答案是否。MATLAB不支持。解决这个问题的一种方法是制作一个单元格数组,其中每个单元格都是长度不等的向量

比如:

a = [6 8 10];
b = [1 5];
c = cell(1,2);
c{1} = a;
c{2} = b;

celldisp(c)

c{1} =

     6     8    10

c{2} =

     1     5
另一种方法是创建一个矩阵,其中那些不包含任何内容的值映射到一个预设的数字,如零。因此,可以将
a
b
连接成矩阵,使其成为
[6 8 10;1 5 0]。如果这是您喜欢的,您可以这样做:

a = [6 8 10];
b = [1 5];
c = zeros(2, 3);
c(1,1:numel(a)) = a;
c(2,1:numel(b)) = b;
disp(c)

 6     8    10
 1     5     0
关于这一特定主题的更全面的论述可以在gnovice的回答中找到:


乔纳斯给出了另一个相关的答案:

你不能。MATLAB不支持不规则矩阵。解决这个问题的一种方法是制作一个单元格数组,其中每个单元格都是长度不等的向量。另一种方法是创建一个矩阵,其中那些不包含任何内容的值映射到一个预设的数字,如零。因此,可以将
a
b
连接成矩阵,使其成为
[6 8 10;1 5 0]。嘿,瑞伦..谢谢你的回复..成功了..再次感谢!!