8,869 views
この記事は最終更新から 1804日 が経過しています。
行列aと行列bについて a * b と記述すると 行列の積 として計算される。
octave:1> a=ones(3,3) a = 1 1 1 1 1 1 1 1 1 octave:2> b=[1 2;3 4;5 6] b = 1 2 3 4 5 6 octave:3> a * b ans = 9 12 9 12 9 12 octave:4>
次に a .* b と記述すると、各配列要素同士の積 として計算される。
octave:5> a=ones(3,3)*2 a = 2 2 2 2 2 2 2 2 2 octave:6> b=[1 2 3;4 5 6;7 8 9] b = 1 2 3 4 5 6 7 8 9 octave:7> a.*b ans = 2 4 6 8 10 12 14 16 18 octave:8>
「.*」は、配列aと配列bの少なくとも一つの次元の要素数が同じであれば計算できる。 ※warningが出るけれども…
octave:18> a=ones(3,3) a = 1 1 1 1 1 1 1 1 1 octave:19> b=[2 3 4] b = 2 3 4 octave:20> a.*b warning: product: automatic broadcasting operation applied ans = 2 3 4 2 3 4 2 3 4 octave:21> b=[2;3;4] b = 2 3 4 octave:22> a.*b warning: product: automatic broadcasting operation applied ans = 2 2 2 3 3 3 4 4 4 octave:23>