I want to divide each row of a matrix with corresponding element in another matrix .Please help.

134 views (last 30 days)
For eg: I have a matrix
A=[9 6 3;
4 2 8;
1 0 0;]
divide A by B=[3 2 1] to get the result
C=[3 2 1;
2 1 4;
1 0 0;]

Accepted Answer

Stephen23
Stephen23 on 18 Apr 2017
Edited: Stephen23 on 18 Apr 2017
Use bsxfun:
>> A = [9,6,3;4,2,8;1,0,0];
>> B = [3,2,1];
>> bsxfun(@rdivide,A,B(:))
ans =
3 2 1
2 1 4
1 0 0

More Answers (2)

Matt J
Matt J on 17 Apr 2017
Edited: Matt J on 17 Apr 2017
Assuming you have R2016b or higher,
C=A./B;
and if you do not,
C=bsxfun(@rdivide,A,B);
  1 Comment
SUNANNA S S
SUNANNA S S on 18 Apr 2017
Sir, This gives the answer
C =
3.0000 3.0000 3.0000
1.3333 1.0000 8.0000
0.3333 0 0
I want to divide each row in A by the corresponding value in B that is, rownumber=element in B, if we take first row of A I want to divide it by first element in B and so on.

Sign in to comment.


First Last
First Last on 28 Mar 2018
Edited: First Last on 28 Mar 2018
Make sure B is transposed to a column vector, i.e.,
C=A./B';

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!