#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