Подтвердить что ты не робот

Случайный порядок строк Matlab

Скажем, у нас есть матрица размером 100x3

Как бы вы перетасовали строки в MATLAB?

4b9b3361

Ответ 1

Чтобы перетасовать строки матрицы, вы можете использовать RANDPERM

shuffledArray = orderedArray(randperm(size(orderedArray,1)),:);

randperm будет генерировать список N случайных значений и сортировать их, возвращая второй результат sort в качестве результата.

Ответ 2

Это можно сделать, создав новый случайный индекс для строк матрицы через функцию Matlab randsample.

matrix=matrix(randsample(1:length(matrix),length(matrix)),:);

Ответ 3

Для больших наборов данных вы можете использовать функцию Shuffle

Он использует D.E. Алгоритм Knuth shuffle (также называемый Fisher-Yates) и симпатичный генератор случайных чисел KISS (Г. Марсалья).