1

也许我应该只使用 for 循环,但我想看看是否有更有效/更快的方法来做到这一点。

我有一个数字矩阵,比如说 10x10。我想将 1,1 乘以 1,2,然后 1,3 乘以 1,4 等,然后将第 1 行的这些结果相加。然后移动到下一行并做同样的事情。最终结果将是一个 10 的向量。

这个矩阵可能是 1000x1000,所以我希望它尽可能快。谢谢!

4

1 回答 1

4

我会用

v = sum(M(:,1:2:end-1).*M(:,2:2:end),2);

这里M(:,1:2:end-1).*M(:,2:2:end)是乘法:M 的奇数列的每个元素都乘以它右边的邻居。(这假设列数是偶数,否则您描述的过程定义不明确。)然后每一行都由sum命令相加。

在我的计算机上,对 1000 x 1000 矩阵执行此操作需要 0.04 秒。

于 2015-03-05T03:29:59.937 回答