Kat*_*tOd 3 matlab matrix matrix-multiplication
我有一个A=[m,n]矩阵和一个B=[n,l]矩阵.
A =
[1 2 3
4 5 6
7 8 9
10 11 12]
Run Code Online (Sandbox Code Playgroud)
为简单起见,我们假设l=1,B实际上是一个向量B=[n,1]
B = [100 10 1]
Run Code Online (Sandbox Code Playgroud)
我想将每一行中的所有值乘以A相应的值B- 列方式.
我知道如何"手动":
C=[A(:,1)*B(:,1), A(:,2)*B(:,2), A(:,3)*B(:,3)]
Run Code Online (Sandbox Code Playgroud)
这是我想要的结果:
C = [100 20 3
400 50 6
700 80 9
1000 110 12]
Run Code Online (Sandbox Code Playgroud)
不幸的是我的真实生活矩阵有点大,例如(D=[888,1270])所以我正在寻找更聪明/更快的方法来做到这一点.
C=bsxfun(@times,A,B)
C =
100 20 3
400 50 6
700 80 9
1000 110 12
Run Code Online (Sandbox Code Playgroud)
在MATLAB®R2016b及更高版本中,您可以直接使用运算符代替bsxfun,因为运算符独立支持数组的隐式扩展.
C = A .* B
Run Code Online (Sandbox Code Playgroud)