В чем разница между * и.* в matlab?

в чем разница между * и .* в Matlab?

2 ответов


* является векторным или матричным умножением .* - это поэлементное умножение

a = [ 1; 2]; % column vector
b = [ 3 4]; % row vector

a*b

ans =

     3     4
     6     8

пока

a.*b.' % .' means tranpose

ans =

     3
     8

* умножение матрицы пока .* - это поэлементное умножение.

чтобы использовать первый оператор, операнды должны подчиняться правилам умножения матрицы по размеру.

для второго оператора длины векторов (вертикальные или горизонтальные направления могут отличаться) или размеры матрицы должны быть равны для элементарного умножения