Сортировать матрицу с другой матрицей

Предположим, у меня есть матрицаA и я сортирую строки этой матрицы. Как мне повторить тот же порядок на матрицеB (конечно же, такого же размера)?

Например.

A = rand(3,4);
[val ind] = sort(A,2);
B = rand(3,4);
%// Reorder the elements of B according to the reordering of A

Это лучшее, что я придумал

m = size(A,1);
B = B(bsxfun(@plus,(ind-1)*m,(1:m)'));

Из любопытства какие-нибудь альтернативы?

Обновить: Отличное решение Джонаса профилированные на 2008a (XP):

n = n
0.048524       1.4632       1.4791        1.195       1.0662        1.108       1.0082      0.96335      0.93155      0.90532      0.88976
n = 2 м
0.63202       1.3029       1.1112       1.0501      0.94703      0.92847      0.90411       0.8849       0.8667      0.92098      0.85569

Это просто говорит о том, что циклы больше не являются анафемой для программистов MATLAB благодаряJITA (Возможно).

Ответы на вопрос(3)

Ваш ответ на вопрос