Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

arrays - Multiply matrix to vector

I've got matrix A(n,m) and I want multiply it to vector b(n), so that the result B[n,m]=A[n,m]*b[n]. It is possible to do it by creating a new matrix C=b*ones(1,m) and then use dot multiplication: B=A.*C, but it is waste of memory (size of A is 5000*1000). It is possible to use loops. Maybe there are more elegant way to do it?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Use bsxfun, which is just for that:

B = bsxfun(@times, A, b(:));

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...