【发布时间】:2017-08-18 21:03:14
【问题描述】:
我正在尝试掌握 matlab,所以这个问题更多的是关于语法。
我想创建一个矩阵向量 (1xn)。矩阵都可能具有不同的维度,例如。矩阵 1 = 4 x 5,矩阵 2 = 5 x 6 等等。
我尝试使用 for 循环,但出现以下错误:
下标分配维度不匹配。
【问题讨论】:
-
你可以使用cell arrays
标签: matlab
我正在尝试掌握 matlab,所以这个问题更多的是关于语法。
我想创建一个矩阵向量 (1xn)。矩阵都可能具有不同的维度,例如。矩阵 1 = 4 x 5,矩阵 2 = 5 x 6 等等。
我尝试使用 for 循环,但出现以下错误:
下标分配维度不匹配。
【问题讨论】:
标签: matlab
您可以将不同大小的矩阵数组存储为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
【讨论】: