在Matlab中按类标签对数据进行分组

时间:2017-02-16 06:14:25

标签: matlab matrix dataframe labels

我对Matlab很陌生,虽然我可能只是迭代地这样做,但我想知道使用可能的内置Matlab功能最干净的方法是什么。

我有一个.mat文件,其中包含一个大小为150x4的特征矩阵X和一个大小为150x1的类标签矢量Y.在Matlab中读取并将矩阵X划分为每个类别组的单独矩阵的惯用方法是什么?

2 个答案:

答案 0 :(得分:1)

在Matlab中使用find函数。以下是一个例子:

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

答案 1 :(得分: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