我试图简化我的代码,我遇到了一个小问题。让
v = [1; 2; 3];
a1 = [4; 5; 6];
a2 = [7; 8; 9];
A = [a1, a2];
我的目标是计算
u = [v.*a1, v.*a2]
只使用v
一次。这可能吗?
我试图简化我的代码,我遇到了一个小问题。让
v = [1; 2; 3];
a1 = [4; 5; 6];
a2 = [7; 8; 9];
A = [a1, a2];
我的目标是计算
u = [v.*a1, v.*a2]
只使用v
一次。这可能吗?
是的,您可以使用 来执行此操作bsxfun
,例如:
u = bsxfun(@times,A,v);
或者也通过使用repmat
u= repmat(v,[1 2]).*A;
或者也通过使用kron
u= kron(v,[1 1]).*A;
或者最后,只使用矩阵乘法:
u = v*[1 1].*A;
我敢肯定还有更多的方法,但我会停在这里......