2011/05/18

配列の要素どうしの積を求める方法

配列の要素どうしの積を求める方法

配列A、Bが以下の場合。

>> A
A =
1
2
3
4
5

>> B
B =
1 2 3 4 5


まずはrepmatで配列をそろえる

>> A2=repmat(A,1,5)
A2 =
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5

>> B2=repmat(B,5,1)
B2 =
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5


この状態で積を求めてみる。

>> A2.*B2
ans =
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25


欲しいのはこの対角線上の値。
そこで対角要素だけを抽出する。

>> diag(A2.*B2)
ans =
1
4
9
16
25


※以下、おまけ
単位行列を用意する。

>> eye(5)
ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1


単位行列を掛ける。

>> eye(5).*(A2.*B2)
ans =
1 0 0 0 0
0 4 0 0 0
0 0 9 0 0
0 0 0 16 0
0 0 0 0 25

0 件のコメント: