You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向量化实现矩阵向量乘积的双层嵌套循环?

矩阵向量乘法的向量化实现问题

原代码通过嵌套循环计算向量v:

v = zeros(10, 1)
for i = 1:10 
    for j = 1:10 
        v(i) = v(i) + A(i, j) * x(j)
    end
end 

其中A为10×10矩阵,x为10×1向量。下面逐一分析给出的候选写法:

  • v = A * x;:正确。矩阵与列向量相乘的定义就是对矩阵的每一行,计算该行元素与向量对应元素的乘积之和,这和原循环的逻辑完全匹配,最终得到10×1的列向量v,和原代码结果一致。
  • v = Ax;:错误。MATLAB不支持省略乘号的矩阵向量写法,Ax会被识别为一个未定义的变量,运行会报错。
  • v = x' * A;:错误。x'是1×10的行向量,与10×10的矩阵A相乘后得到1×10的行向量,不仅维度和原代码的10×1列向量不符,计算逻辑也完全不同。
  • v = sum(A * x);:错误。A*x本身已经是正确的10×1向量,sum操作会将所有元素求和得到一个标量,和原循环的结果完全不一致。

内容的提问来源于stack exchange,提问作者Ayushman Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 16:20:20