我对下面的代码有一个小问题,最后一行是具体的,我试图找到我的“样本”的类名,我的意思是我需要知道哪个正常和哪个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
是随机的所以我不知道如何将班级标签与抽样相匹配。
答案 0 :(得分:1)
%
shuffle = randperm(1000);
sample = sample(shuffle,:);
%
idx = [a ; p];
K1 = Book2(idx (shuffle), :);