プロが教える店舗&オフィスのセキュリティ対策術

Matlabのspdiags関数に関してわからないところがあります。以下はMatlabのヘルプWebページから持ってきた例です。http://dl.cybernet.co.jp/matlab/support/manual/r …
B = [ 41 11 0
52 22 0
63 33 13
74 44 24 ];

d = [-3 0 2];、m=7, n=4のとき

A = spdiags(B,d,7,4)

A =

(1,1) 11
(4,1) 41
(2,2) 22
(5,2) 52
(1,3) 13
(3,3) 33
(6,3) 63
(2,4) 24
(4,4) 44
(7,4) 74

これに対応するフル行列Aは、つぎのようになります。

full(A)

ans =

11 0 13 0
0 22 0 24
0 0 33 0
41 0 0 44
0 52 0 0
0 0 63 0
0 0 0 74

mやnというのはfull(A)がm行n列の行列であるというイメージの対応がわかるのですが、d = [-3 0 2]とfull(A)の行列の関係がわかりません。-3,0,2というのはfull(A)のどこを見れば良いのでしょうか。

A 回答 (1件)

d = [-3


0
2];

というのは、行列Bの各列に対応するフル行列A内の位置を示しています。つまり、Bの1列目の情報はフル行列Aの-3の位置に入り、Bの2列目の情報はフル行列Aの0の位置に入り、Bの3列目の情報はフル行列Aの2の位置に入るといった具合です。
下記URLに図入りで詳しく説明されています。

http://www.mathworks.com/access/helpdesk/help/te …
    • good
    • 0
この回答へのお礼

ありがとうございます!おかげさまでよくわかりました。

お礼日時:2007/09/03 22:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!