列向量和矩阵的元素乘法

Kar*_*rus 0 matlab

我有一个n-by-1列向量A和一个n-by-m矩阵B.我希望乘以AB元素的每一列来创建矩阵n-by-m矩阵C.

例如:

% Input
A = [1; 2; 3];
B = [1 2 3 4; 5 6 7 8; 9 10 11 12];
C = % Some function of A and B

% Output:
C = [1 2 3 4; 10 12 14 16; 27 30 33 36]
Run Code Online (Sandbox Code Playgroud)

我的问题:这可以在一行中完成,而不必创建循环吗?(MATLAB 8.1)

gir*_*ire 5

你在找bsxfun.实现你想要的结果:

C = bsxfun(@times, A, B);
Run Code Online (Sandbox Code Playgroud)

查看此处支持的完整功能列表.