いま、n 次元行列として A があって、V を 1 から n の添え字の部分集合としたとき、V の要素を行と列にもつ行列を A から作るには
A(V,V)
とすればよい。
ところで、この対角成分を取り出すとした時に、
v = diag(A(V,V))
とするよりも
diagA = diag(A); v = diagA(V);
とした方が圧倒的に高速である。
(このあたり、自動的に Matlab が変換してくれるかと思っていたが、どうやらそうでもないらしい)
今日の作業では、こういった高速化をいくつか入れることで、昨日1時間かかっていた部分を3秒程度まで短縮することができている。
今日の作業内容:プログラムの高速化 3h
明日の予測作業時間:2h
0 件のコメント:
コメントを投稿