Случайная выборка Matlab

#matlab #random

#matlab #Случайный

Вопрос:

Я пытаюсь тренироваться в 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
  

Чтобы случайным образом выбрать 2 строки из data.dat, вот как я продолжаю:

 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. что вам i = randi(length(M),N); дает i ? и составляет ли M(i,:) 2 строки?

Ответ №1:

Я думаю, что вы ошибаетесь, когда генерируете случайные числа, как указано в 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