MSMコード改善

相互部分空間法のmatlabコードを修正.特異値分解のオプションに0をつけ,余計な計算をしないようにしてみた.当たり前の話だが計算速度が改善.ダウンサンプリングを行わなくても,それなりの解像度で使えるようになった.しかし,使用する基底数が未だによくわからない.まあ,辞書となる部分空間は学習データをフルに使って基底を作っておくとして,質問データの数と,質問データの特異値分解から得られた基底から何本使うか,というのがわからない.対象依存だし,いちいち調べる必要がある.めんどい.
Cellの使い方を工夫すれば結果を1つのオブジェクトに格納できそう.Cellは値,配列(ベクトル),行列を要素として格納できる.しかもCellは2次元配列として使える.C++でCellと同じことをするにはクラスを使えばよいのだろうか.あるいは,C++C++にあった,もっとやりやすい方法を考えたほうが良さげ.

というか,特異値分解で得られる左特異行列のランク(得られる基底数)と特異値分解するデータの数の関係をちゃんと把握してなかったせいでこんなに時間がかかった.数学の知識がないとこういうところでつまるのか….