2016-04-16 2 views
0

Как я перетасовать порядок строк матрицыПеремешайте строки матрицы

1 2 3 4 5 6 
5 1 3 2 4 6 
2 5 1 3 4 6 

мне нужно перетасовать порядок строк

2 5 1 3 4 6 
1 2 3 4 5 6 
5 1 3 2 4 6 

Как я могу сделать это в MATLAB?

+0

это на самом деле не ясно, что вы пытаетесь сделать. Пожалуйста, предоставьте дополнительную информацию: вам нужно произвольно перетасовывать строки? – Cyb3rFly3r

+0

да, мне нужно случайным образом перетасовать строки, YUP – asif

+1

У меня нет доступа к MATLAB в данный момент, поэтому я могу дать вам схему метода: используйте 'randperm (3)' для генерации перестановки индексов, затем создайте новую матрицу, присвоив каждой строке вашей матрицы новой в последовательности, возвращаемой randperm. – Cyb3rFly3r

ответ

2

Вы можете легко использовать случайную перестановку (randperm) индексов строк, чтобы перетасовать строки вашей входной матрицы.

В качестве примера я использовал magic, но замените свою матрицу на A.

A = magic(3); 
%// 8  1  6 
%// 3  5  7 
%// 4  9  2 

rows = randperm(size(A, 1)); 
%// 2  1  3 

B = A(rows, :); 
%// 3  5  7 
%// 8  1  6 
%// 4  9  2 

Или в одной строке:

B = A(randperm(size(A, 1)), :); 
Смежные вопросы