Случайный порядок строк Matlab
Скажем, у нас есть матрица размером 100x3
Как бы вы перетасовали строки в MATLAB?
Ответы
Ответ 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 (Г. Марсалья).