Можно ли случайно выбрать количество данных из набора матричных данных? - PullRequest
0 голосов
/ 16 марта 2019

Могу ли я фиксировать количество строк случайным образом из набора данных?

пример

 A=[1 2 3 4; 
   5 6 7 8; 
   9 10 11 12; 
   13 14 15 16; 
   17 18 19 20];

Я хочу произвольно выбрать обучающий набор данных 3 строки и произвольно выбрать тестовый набор данных 2 строки.

training_dataset= [1 2 3 4; 
                   13 14 15 16;
                   5 6 7 8;];

и

   testing_dataset= [ 9 10 11 12; 
                    17 18 19 20];

Я нашел только случайное число из массива.

Большое спасибо

1 Ответ

2 голосов
/ 16 марта 2019

В этом решении используются команды randperm и setdiff.

indTrainRow = randperm(size(A,1),3)
indTestRow = setdiff(1:size(A,1),indTrainRow)

training_dataset = A(indTrainRow,:);
testing_dataset = A(indTestRow,:);

Вы также можете использовать randsample, но для этого требуется панель инструментов Статистика.

indTrainRow = randsample(1:size(A,1),3,'false') 

После публикации я нашел несколько похожих сообщений. Моя ошибка, что я не нашел их, прежде чем ответить.

Похожие сообщения :
Случайный выбор столбцов матрицы
Как я могу разделить / разбить матрицу по строкам между двумя другими матрицами?

...