Matlab 细胞随时间增殖

Matlab 细胞随时间增殖,matlab,matrix,cells,Matlab,Matrix,Cells,我有两组矩阵作为标记为A和B的单元格 供参考的一般问题: 我有5个矩阵A单元,每个单元由9x9矩阵组成,20个矩阵B单元也由9x9矩阵组成 我仍在试图找到一种方法,将它们简单地转换为以下模式: A{1} B{1} B{2} B{3} B{4} B{5} A{2} B{6} B{7} B{8} B{9} B{10} A{3} B{11} B{12} B{13} B{14} B{15} A{4} B{16} B{17} B{18} B{19} B{20} A{5} 这个较大的

我有两组矩阵作为标记为A和B的单元格

供参考的一般问题:

我有5个矩阵A单元,每个单元由9x9矩阵组成,20个矩阵B单元也由9x9矩阵组成

我仍在试图找到一种方法,将它们简单地转换为以下模式:

A{1}  B{1}  B{2}  B{3}  B{4}
B{5}  A{2}  B{6}  B{7}  B{8}
B{9}  B{10} A{3}  B{11} B{12}
B{13} B{14} B{15} A{4}  B{16}
B{17} B{18} B{19} B{20} A{5}
这个较大的矩阵会随着时间的推移而重复:比如说5次迭代。所以我使用A{1}:,:,1来引用时间1时单元格A{1}中的数据

*我的问题是我遇到的:*

而这在一个循环中与

 for j=1:t
    A{1}(:,:,j+1) = B{1}(:,:,j)*A{1}(:,:,j)
 end
为什么下面的方法不起作用

 A{1}(:,:,2:t)=B{1}(:,:,1:t-1)*A{1}(:,:,1:t-1);

为您的帮助干杯。

您可能想使用*而不是*进行元素乘法。在循环示例中,您可能没有注意到您实际上正在进行矩阵乘法,因为您的矩阵在特定时间是平方的,代码不会返回任何错误。

我想在a和B之间进行矩阵乘法。B实际上是我的代码中的向量,每个单元格中的维数为9,1。由于2:t无法工作,我将不得不更改其余代码:感谢您花时间:那么为什么不将j=1:t-1用于循环呢?它不应该创造额外的时间。啊,是的,我已经做了,因为张贴这个问题,但我想避免使用循环。为什么你这么担心避免循环?我认为在这种情况下,循环代码将比矢量化更清晰。使用MATLAB JIT优化,您不应该有性能问题。我明白了。我被告知尽可能避免循环。非常感谢你的帮助!