Lets said I have the matrix M = ones(3);
and I want to divide each row by a different number, e.g., C = [1;2;3];
.
1 1 1 -divide_by-> 1 1 1 1
1 1 1 -divide_by-> 2 = 0.5 0.5 0.5
1 1 1 -divide_by-> 3 0.3 0.3 0.3
How can I do this without using loops?
Description. X = A ./ B performs right-array division by dividing each element of A by the corresponding element of B . X = rdivide( A , B ) is an alternative way to execute X = A./B .
Description. x = A ./ B divides each element of A by the corresponding element of B . The sizes of A and B must be the same or be compatible. If the sizes of A and B are compatible, then the two arrays implicitly expand to match each other.
c = divide( T , a , b ) performs division on the elements of a by the elements of b . The result c has the numeric type specified by numerictype object T .
Use right array division as documented here
result = M./C
whereas C has the following form:
C = [ 1 1 1 ; 2 2 2 ; 3 3 3 ];
EDIT:
result = bsxfun(@rdivide, M, [1 2 3]'); % untested !
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With