Matlab 如何将矩阵与向量相乘,得到矩阵中的结果?
假设我有一个矩阵:Matlab 如何将矩阵与向量相乘,得到矩阵中的结果?,matlab,octave,Matlab,Octave,假设我有一个矩阵: A = [ a, b, c; d, e, f ]; 和一个向量: b = [ x; y; z ]; 我想要的结果矩阵是: C = [ a*x, b*y, c*z; d*x, e*y, f*z ]; 我该怎么做? 本质上,我想将矩阵(维数:mxn)与向量(nx1)相乘,得到结果矩阵mxn 按照评论中的要求(使用倍频程版本3.8.0): 你试过把它们相乘吗?b不是标量。它是一个矩阵或列向量prefer@matzeri已修复打字
A = [ a, b, c;
d, e, f ];
和一个向量:
b = [ x;
y;
z ];
我想要的结果矩阵是:
C = [ a*x, b*y, c*z;
d*x, e*y, f*z ];
我该怎么做?
本质上,我想将矩阵(维数:mxn)与向量(nx1)相乘,得到结果矩阵mxn
按照评论中的要求(使用倍频程版本3.8.0
):
你试过把它们相乘吗?b不是标量。它是一个矩阵或列向量prefer@matzeri已修复打字错误。请参阅
*
的。如果您使用的是MATLAB≤ R2016a,您将需要。在倍频程和MATLAB中≥ R2016b,您可以直接使用*
(调整尺寸后)“
是复共轭转置。您应该在这里使用简单的转置”
,因为您要使用的是转置。安迪已经贴出来了。你可以继续,谢谢你的回答。在我对这个问题发表评论之前,我没有注意到你的回答。我正在等待@SardarUsama的输入,然后将您的答案标记为已接受答案。
octave> A = [ 1,2,3;4,5,6]; B=[10;20;30];
octave> A*B
ans =
140
320
octave> A.*B
error: product: nonconformant arguments (op1 is 2x3, op2 is 3x1)
octave> bsxfun(@times, A, B)
error: bsxfun: nonconformant dimensions: 2x3 and 3x1
A = [ 1,2,3;4,5,6];
B = [10;100;1000];
A.*B.'
ans =
10 200 3000
40 500 6000