How to divide a matrix by certain numbers?

2 views (last 30 days)
I want to divide a matrix by a column vector in this way:
(4 2 3 8;7 9 1 5;6 4 8 3) / (4;8;2)
and then the result i want to get is:
(4/4 2/4 3/4 8/4;7/8 9/8 1/8 5/8;6/2 4/2 8/2 3/2)

Accepted Answer

Star Strider
Star Strider on 23 Sep 2015
Try this:
A = [4 2 3 8;7 9 1 5;6 4 8 3];
B = [4;8;2];
format rat
Q = bsxfun(@rdivide, A, B)
Q =
1 1/2 3/4 2
7/8 9/8 1/8 5/8
3 2 4 3/2
  2 Comments
Royvg94
Royvg94 on 23 Sep 2015
What means format rat? And what does it do?
Star Strider
Star Strider on 23 Sep 2015
The format rat sets the format in the Command Window to rational fraction approximation, since I thought that is what you wanted. (See the documentation on format for a full description of that and other options.) This just affects the Command Window output, and full double-precision representation is maintained internally.

Sign in to comment.

More Answers (1)

Thorsten
Thorsten on 23 Sep 2015
A./repmat(v, 1, size(A, 2))
  2 Comments
Royvg94
Royvg94 on 23 Sep 2015
Can you explain this a bit more?
Thorsten
Thorsten on 23 Sep 2015
You expand the column vector v to the size of the matrix by replicating it using repmat, then you use point-wise division ./

Sign in to comment.

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!