2016-10-12 10 views
0

私は自分自身をMatlabで運動しようとしています。私はdata.datという名前のファイルから2行をランダムに選択しようとしています。Matlabランダムサンプリング

マイDATA.DATファイルは次のようになります。私は進行していますどのようにここDATA.DATからランダムに2行を選択するには

12 4 6.1 7 

14 4 8.4 62 

7 56.1 75 98 

9.7 54 12 35 

2 4 8 7.8 

close all; 
clear all; 
%----------------------% 
% Choose random lines 
%----------------------% 
M = load('data.dat'); 
N=2; %number_of_lines 
file_number = 2; %save each two lines in new file: selection_1, selection_2 

は今、私は2つを保存しています新しいファイルの選択された行を順番に表示します。

for k = 1:file_number 
i = randi(length(M),N); 
B=M(i,:) 
filename=['samples_',int2str(k),'_mc.dat'] 
save (filename, 'B', '-ascii') 
clear B; 
end 

理由はわかりませんが、新しいファイルごとに2行以上あります。私はどこで間違いをしたのか説明してください。

+0

'i = randi(length(M)、N);'あなたに 'i'を与えますか? M(i、:)は2行を作るのですか? – GameOfThrows

答えて

0

GameOfThrowsに示されているように、乱数を生成するときに誤っていると思います。

i = randi(length(M),N); % gives you a matrix NxN of numbers 
i = randi(length(M),[N,1]); % gives you a column of N numbers 
関連する問題