我有一个 A=[m,n]
矩阵和一个 B=[n,l]
矩阵 .
A =
[1 2 3
4 5 6
7 8 9
10 11 12]
为简单起见,我们假设是 l=1
,所以 B
实际上是一个向量 B=[n,1]
B = [100 10 1]
我想将 A
的每一行中的所有值乘以相应的 B
值 - 列方式 .
我知道如何“手动”:
C=[A(:,1)*B(:,1), A(:,2)*B(:,2), A(:,3)*B(:,3)]
这是我想要的结果:
C = [100 20 3
400 50 6
700 80 9
1000 110 12]
不幸的是,我的真实生活矩阵有点大,例如( D=[888,1270]
)所以我正在寻找更聪明/更快的方法来做到这一点 .
2 回答
Pre R2016b:
R2016b及更高版本:
在MATLAB®R2016b及更高版本中,您可以直接使用运算符而不是
bsxfun
,因为运算符独立支持数组的隐式扩展 .如果是
I > 1
,则必须首先使用permute
重新排序B
的尺寸,