Matlab随机抽样

时间:2016-10-12 12:55:20

标签: matlab random

我想在Matlab中锻炼自己。我试图从名为data.dat的文件中随机选择两行。

我的data.dat文件如下所示:

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

要从data.dat中随机选择2行,这里是我正在进行的操作:

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

现在我按顺序在新文件中保存两条选定的行。

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行。你能解释一下我在哪里弄错了吗?

1 个答案:

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