配列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