Как разделить строки матрицы по разным значениям в MATLAB (деление массива) - PullRequest
7 голосов
/ 15 октября 2010

Допустим, у меня есть матрица M = ones(3);, и я хочу разделить каждую строку на другое число, например, 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

Как это сделать без использования циклов?

1 Ответ

6 голосов
/ 15 октября 2010

Используйте правильное деление массива, как описано здесь

result = M./C

, тогда как C имеет следующую форму:

C = [ 1 1 1 ; 2 2 2 ; 3 3 3 ];

РЕДАКТИРОВАТЬ:

result = bsxfun(@rdivide, M, [1 2 3]'); % untested !
...