如何制作一个矩阵阵列(不同大小)

时间:2017-03-26 03:28:27

标签: matlab

我正在努力掌握matlab,所以这个问题更多地是关于语法而不是其他任何东西。

我想创建一个矩阵向量(1xn)。矩阵都可能具有不同的尺寸,例如。矩阵1 = 4 x 5,矩阵2 = 5 x 6等。

我尝试使用for循环,但我遇到以下错误:

订阅的分配维度不匹配。

1 个答案:

答案 0 :(得分:1)

您可以将不同大小的矩阵数组存储为cell array矩阵。通常,您希望使用arrayfun函数动态创建这些单元格数组,如果您将UniformOutput选项设置为0,则会为您执行此操作。

示例:

cols = [4 5 6];
rows = [1 2 3];
A = arrayfun(@(i) zeros(rows(i),cols(i)),1:3,'UniformOutput',0);
A{:}

输出:

ans =

     0     0     0     0


ans =

     0     0     0     0     0
     0     0     0     0     0


ans =

     0     0     0     0     0     0
     0     0     0     0     0     0
     0     0     0     0     0     0