MATLAB Answers


vector matrix multiplication single row

Asked by PK
on 23 Oct 2012

is there a chance to multiply this way rand(1,10)*rand(10,100) but the way of calculation is each singe element of 1x10 mtx should multiply entire row of 10x100 mtx



No products are associated with this question.

2 Answers

Answer by Andrei Bobrov
on 23 Oct 2012

a = rand(1,10);
b = rand(10,100);
out = bsxfun(@times,a.',b); 


Answer by Jan Simon
on 23 Oct 2012
Edited by Jan Simon
on 23 Oct 2012

While I'd prefer BSXFUN as Andrei has posted already, there is an alternative:

a = rand(10,1);   % Transposed!
b = rand(10,100);
R = a(:, ones(1, 100)) .* b;

Time measurements seems like the ONES is not created explicitely, such that this is more efficient than it looks like.


Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!