假设我们有一个Mx3矩阵和一个1x3向量。如何在不使用循环的情况下计算每一列与向量的点积?
答案 0 :(得分:2)
如果我正确理解了您的问题,
M = rand(8,3); V = 1:3;
P = sum( M .* V, 2 ); % or in older MATLAB versions: sum( bsxfun(@times, M, V), 2 );
如果要处理复数,则可能必须对输入之一进行共轭。
答案 1 :(得分:2)
使用Dev-iL的示例数据:
M = rand(8,3);
V = 1:3;
M
与V
的每一行的点积就是转置V
的矩阵积:
M * V'
请注意,'
返回点积所需的共轭转置。
使用M
的列来计算点积是没有意义的,因为尺寸不匹配,因此我假设您是指行(其他答案了。)