也许我应该选择for循环,但我想看看是否有更高效/更快的方法。
我有一个数字矩阵,让我们说10x10。我想将1,1乘以1,2,然后将1,3乘以1,4等,然后对第1行求和。然后移动到下一行并执行相同的操作。最终结果将是10的向量。
这个矩阵有可能是1000x1000,所以我希望它尽可能快。谢谢!
答案 0 :(得分: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秒。