A simple matrix operation

I have a Matrix A with n rows and d columns. Matrix B has 1 row and d columns. I want to create a new Matrix C with the same size as A, where any of its element in each row is obtained by dividing elements of rows A by elements of row in B. How can we do it without using "for" only uning matlab matrix operations in a general case?
For example, A[1 2 3; 4 5 6; 7 8 9; 10 11 12] and B[10 20 30], I want C as: C[1/10 2/20 3/30; 4/10 5/20 6/30; 7/10 8/20 9/30; 10/10 11/20 12/30]

更多回答(2 个)

BB=repmat(B,[n 1]);
C=A./BB;

1 个评论

Matt J
Matt J 2014-8-13
编辑:Matt J 2014-8-13
Note, in older versions of MATLAB repmat does use M-Coded for-loops. There is also additional memory allocation needed for storing BB. bsxfun was introduced precisely to avoid this.

请先登录,再进行评论。

Try:
C = bsxfun(@rdivide, A, B)

1 个评论

Oh sorry Matt J, didn't see your answer when i wrote mine. Stalin are you being sarcastic? because it do work.

请先登录,再进行评论。

类别

在 帮助中心 和 File Exchange 中查找有关 Mathematics 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by