0

ここの前の質問で、コードの最後の行でサンプルに与えられた答えをサンプリングすると、1000x6ではなく1000x1しか返されませんか?

%% 
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 ; smurfSubset]

%
sample = sample(randperm(1000)); % this line

私は試した:

sample = randperm( size(sample, 1));

これは 1 行に 28,000 レコードを出力しますが、これは明らかに私が望むものではありません。私はそれから試しました:

rows = 1000;
columns = 6;

%# pick random columns
 indY = randperm( size(sample,2) );
 indY = indY(1:columns);

%# pick random rows
indX = randperm( size(sample,1) );
indX = indX(1:rows)';

%# filter data
sample = [indX ; indY];

しかし、最後の行を連結できませんでしたか? これは、1000x6 の問題を解決しようとする試みにすぎません。誰かが「機能する方法」により良い方法を思い付くことができればの話です。

4

1 に答える 1

3

どうですか

 sample = sample(randperm(1000),:);
于 2012-11-13T20:57:13.467 に答える