将行样本与类标签匹配

时间:2012-11-16 07:35:10

标签: matlab

我对下面的代码有一个小问题,最后一行是具体的,我试图找到我的“样本”的类名,我的意思是我需要知道哪个正常和哪个smurf属于每一行我的1000x6样本。

%% sampling
normIdx = strmatch('normal.', Book2);
normalSubset = fulldata(normIdx, :);
normal = randperm(size(normalSubset , 1));
p = (normal(1:750)-1)';

%
smurfIdx = strmatch('smurf.', Book2);
smurfSubset = fulldata(smurfIdx, :);
smurf = randperm(size(smurfSubset , 1));
a = (smurf(1:250)-1)';

%
normalSample = normalSubset (p, :);
smurfSample = smurfSubset (a, :);

%
sample = [normalSample ; smurfSample]

%
sample = sample(randperm(1000),:);

%
idx = [a ; p];
K1 = Book2(idx (sample==1), :)

K1应该等于1000个样本类别标签,其中750个应该是正常的,250个应该是蓝色的,它们应该完全对应于样本中的同一行。 Book2包含类标签我也有从中得到样本的全数据。

Atm K1导致:

Index exceeds matrix dimensions

可能有一种简单的方法可以将样本数据与全数据中的数据进行匹配,但我不确定在全数据中是否可能存在重复数据...因此匹配已经结束,因为sample是随机的所以我不知道如何将班级标签与抽样相匹配。

1 个答案:

答案 0 :(得分:1)

这是什么意思? :

%
shuffle = randperm(1000);
sample = sample(shuffle,:);

%
idx = [a ; p];
K1 = Book2(idx (shuffle), :);