2014-02-27 3 views
0

Учитывая матрицу A m x n Я хотел бы реорганизовать ее строки так, чтобы переход от строки 1 к строке n растет, растет среднее значение по строке.Переупорядочить матрицу в соответствии со средним значением ее строк

Есть ли простой способ сделать это?

E.g. Входной A = [5 5 5; 3 3 3; 2 2 2; 4 4 4] Выходной B = [2 2 2; 3 3 3; 4 4 4; 5 5 5]

ответ

2

Я думаю, что вы имеете в виду строк, а не столбцы; и означают, а не медианный:

[~, ind] = sort(mean(A.')); %'// get indices of sorting the row means 
B = A(ind,:); %// apply that sorting to the matrix 

(вы можете сэкономить время, используя sum вместо mean).

Если вы на самом деле означает столбцы:

[~, ind] = sort(mean(A)); 
B = A(:,ind); 

Если вы на самом деле означает медианный, замените mean на median.


Смежные вопросы