Один метод может быть:
% UNSORTED
A(:,:,1) = [1 1 1 1 1 2 2 2 1 1 1];
A(:,:,2) = [1 1 1 1 1 3 2 2 3 2 2];
A(:,:,3) = [3 1 4 3 2 1 2 1 1 2 1];
for ii = 1:size(A,1)
A(ii,:,:) = reshape(sortrows(squeeze(A(ii,:,:)),[1:3]),[1,size(A,2),size(A,3)])
end
Таким образом, мы извлекаем каждую 2D матрицу, мы используем squeeze
, чтобы удалить одноэлементное измерение, затем мы используем sortrows
, чтобы отсортировать каждую строку (с этим приоритетом 1 -> 2-> 3). И наконец мы reshape
эта 2D матрица, чтобы восстановить одноэлементное измерение и получить 3D матрицу.