【发布时间】:2018-10-09 11:21:50
【问题描述】:
假设我们有一个 Mx3 矩阵和一个 1x3 向量。如何在不使用循环的情况下计算每列和向量的点积?
【问题讨论】:
-
你的意思是每一行和向量的点积吗?否则尺寸不匹配
-
请用for循环举例
标签: matlab matrix vector vectorization dot-product
假设我们有一个 Mx3 矩阵和一个 1x3 向量。如何在不使用循环的情况下计算每列和向量的点积?
【问题讨论】:
标签: matlab matrix vector vectorization dot-product
如果我理解你的问题,
M = rand(8,3); V = 1:3;
P = sum( M .* V, 2 ); % or in older MATLAB versions: sum( bsxfun(@times, M, V), 2 );
如果您要处理复数,则可能需要对其中一个输入进行共轭。
【讨论】:
使用 Dev-iL 的示例数据:
M = rand(8,3);
V = 1:3;
M 与V 的每一行的点积只是矩阵与V 的转置:
M * V'
请注意,' 返回共轭转置,这是点积所需要的。
如问题中所述,用M 的 列 计算点积是荒谬的,因为尺寸不匹配,因此我认为您的意思是行(就像其他答案一样)。
【讨论】: