octaveの行列の積

*と.*では異なる。

*は行列として積をとる。

[1 2; 3 4; 5 6] * [2 ; 2] = [ 1*2 + 2*2 ; 3*2 + 4*2 ; 5*2 + 6*2] = [6; 14 ; 22]

octave:13> x
x =

1 2
3 4
5 6

octave:14> y
y =

2
2

octave:15> x * y
ans =

6
14
22

 

.*は要素ごと。

[1 2; 3 4; 5 6] .* [ 0 0 ; 1 1 ; 2 2 ] = [ 0 0 ; 3  4; 10 12]

octave:25> x
x =

1 2
3 4
5 6

octave:26> y
y =

0 0
1 1
2 2

octave:27> x .* y
ans =

0 0
3 4
10 12

 

おまけ 

スカラとの積はどちらを使っても同じで、要素ごとの積になる。

octave:30> x
x =

1 2
3 4
5 6

octave:31> y
y = 2
octave:32> x * y
ans =

2 4
6 8
10 12

octave:33> x .* y
ans =

2 4
6 8
10 12

 

行列の積は順番が大切。
左の列数と右の行数が等しくなければならない