2017-02-16 8 views
1

私はMatlabの新機能ですが、これを繰り返し実行することもできますが、組み込みのMatlab機能を使用するのが最もクリーンな方法が何であるか不思議です。Matlabのクラスラベルによるデータのグループ化

サイズ150x4の特徴行列Xとサイズ150x1のクラスラベルベクトルYを含む.matファイルがあります。 Matlabでは、行列Xを読み込んで各クラスグループごとに別々の行列に分割するという慣用的な方法はありますか?

+0

grp2idx関数を参照してください。 –

答えて

1

Matlabのfind関数を使用してください。以下はその例です:

index = find(Y==somevalue); 
subX = X(index,:); 
0

これは私がこれを行うために考えた最良の方法です。もし誰かがこれを行う関数のような良い方法を知っていれば、それはさらに良いでしょう。

[row_size feature_size] = size(X_train); 
classes = unique(Y_train); 
grouped_data = cell(length(classes),1); 

for i=1:length(classes) 
    label_indices = find(Y_train==classes(i)); 
    grouped_data{i} = X_train(min(label_indices):max(label_indices),:); 
end 
関連する問題