我正在努力掌握matlab,所以这个问题更多地是关于语法而不是其他任何东西。
我想创建一个矩阵向量(1xn)。矩阵都可能具有不同的尺寸,例如。矩阵1 = 4 x 5,矩阵2 = 5 x 6等。
我尝试使用for循环,但我遇到以下错误:
订阅的分配维度不匹配。
答案 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