在Matlab循环中调用顺序变量

时间:2014-11-17 18:58:11

标签: arrays matlab for-loop sequential

我刚开始用Matlab编程,所以我可能会问一个非常简单的问题。

假设我有10个变量名为:X_1,X_2 ...... X_10。这些变量中的每一个都是3x3矩阵。

我希望将'for循环'中的各个矩阵乘以常量,并将它们存储在变量Y_1,Y_2 ... Y_10中。后者不会成为问题,因为我知道如何在单元格数组中顺序存储新变量(也使用'for循环')。

我无法弄清楚如何在j = 1:10的'for循环'中调用X变量。我看过一些使用'eval'的答案,但很多人说这不是最有效的方式。

有人可以帮助我吗?

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

绝对创建3D阵列是最好的解决方案。

然后,如果你处理矩阵 - 矩阵或 - 向量乘法,你可以使用mtimesx函数来代替循环(通常在MATLAB和其他解释语言中很慢),或者只使用bsxfun进行元素化乘法

X(:,:,1) = X_1;
X(:,:,2) = X_2;
%// and so on

constants = permute(1:10, [3,1,2])

Y = bsxfun(@times, X, constants);