私はMatlabの新機能ですが、これを繰り返し実行することもできますが、組み込みのMatlab機能を使用するのが最もクリーンな方法が何であるか不思議です。Matlabのクラスラベルによるデータのグループ化
サイズ150x4の特徴行列Xとサイズ150x1のクラスラベルベクトルYを含む.matファイルがあります。 Matlabでは、行列Xを読み込んで各クラスグループごとに別々の行列に分割するという慣用的な方法はありますか?
私はMatlabの新機能ですが、これを繰り返し実行することもできますが、組み込みのMatlab機能を使用するのが最もクリーンな方法が何であるか不思議です。Matlabのクラスラベルによるデータのグループ化
サイズ150x4の特徴行列Xとサイズ150x1のクラスラベルベクトルYを含む.matファイルがあります。 Matlabでは、行列Xを読み込んで各クラスグループごとに別々の行列に分割するという慣用的な方法はありますか?
Matlabのfind関数を使用してください。以下はその例です:
index = find(Y==somevalue);
subX = X(index,:);
これは私がこれを行うために考えた最良の方法です。もし誰かがこれを行う関数のような良い方法を知っていれば、それはさらに良いでしょう。
[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
grp2idx関数を参照してください。 –