MATLAB - 在没有for循环的情况下对矩阵索引执行操作

时间:2013-03-01 17:47:36

标签: matlab for-loop matrix indices

自从我在MATLAB中完成矩阵运算以来已经有一段时间了,所以如果这很容易解决,请原谅我。

我有一些NxM矩阵A,我想对A的列索引执行操作。我知道如何使用for循环来完成此操作,但由于我使用MATLAB,我希望能够利用MATLAB快速对矩阵进行操作。

假设我有一个名为myFunc的函数。有没有办法在没有for循环的情况下执行以下操作(例如使用矩阵乘法):

for i=1:M
    A(:, floor(i*myFunc())) = A(:, i)

2 个答案:

答案 0 :(得分:1)

这样可以吗?

A(:,floor([1:M]*myFunc())) = A(:,1:M)

因为我不知道你的myFunc是否也依赖于我。

答案 1 :(得分:1)

您可以将i*替换为(1:M).*,如下所示:

A(:, floor((1:M).*myFunc())) = A(:,1:M)

请注意.*执行逐元素乘法而不是矩阵乘法。