2016-11-06 5 views
0

Является ли это право заявления поменять 3D матрицу:Как поменять местами в 3D-массиве с помощью MATLAB?

A([1 2],:,2)= A([2 1],:,2) 

A определяются как 3D-матрица 3x3x3.

Попробуйте представить, что у вас есть трехмерная матрица 3x3x3 (тип куба). Теперь вам нужно поменять столбец лицевой стороны на столбе верхней поверхности. Возможно ли такое изменение в MATLAB?

ответ

0

Да.

Это вызывают переключение 2 верхние строки в A(:,:,2):

A = reshape(1:27,[3,3,3]); 
before = A(:,:,2) 
A([1 2],:,2) = A([2 1],:,2); 
after = A(:,:,2) 

Результат:

before = 
    10 13 16 
    11 14 17 
    12 15 18 
after = 
    11 14 17 
    10 13 16 
    12 15 18 
+0

Можете ли вы сказать о том, как бы вы определили размеры матрицы ?? –

+0

Я не уверен, о чем вы спрашиваете, но первая строка определяет все. ['reshape'] (http://www.mathworks.com/help/matlab/ref/reshape.html) принимает вектор' 1: 27' и преобразует его в массив 3 на 3-на-3 ('[3,3,3]'), где элементы с 1 по 27 упорядочены в [колонке-майоре] (http://www.mathworks.com/help/matlab/matlab_external/matlab-data.html#f22019) заказ. Разве это очищает то, что вы просили? – EBH

+0

Да, очень, спасибо! –

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