una tablas matriz invertir guide flipud fliplr flipdim extraer espejo español elementos arrays matlab matrix

arrays - tablas - ¿Cómo obtener la imagen espejo de una matriz(MATLAB)?



matriz espejo matlab (3)

Otra solución simple es

b = a(end:-1:1);

Puedes usar esto en una dimensión particular, también.

b = a(:,end:-1:1); % Flip the columns of a

Dado un conjunto:

array1 = [1 2 3];

Tengo que invertirlo así:

array1MirrorImage = [3 2 1];

Hasta ahora obtuve esta fea solución:

array1MirrorImage = padarray(array1, [0 length(array1)], ''symmetric'', ''pre''); array1MirrorImage = array1MirrorImage(1:length(array1));

¿Hay una solución más bonita para esto?


puedes usar

rowreverse = fliplr(row) % for a row vector (or each row of a 2D array) colreverse = flipud(col) % for a column vector (or each column of a 2D array) genreverse = x(end:-1:1) % for the general case of a 1D vector (either row or column)

http://www.eng-tips.com/viewthread.cfm?qid=149926&page=5


ACTUALIZACIÓN: en las versiones más nuevas de MATLAB (R2013b y posteriores), se prefiere utilizar la función flipdim lugar de flipdim , que tiene la misma sintaxis de llamada:

a = flip(a, 1); % Reverses elements in each column a = flip(a, 2); % Reverses elements in each row


Tomás tiene la respuesta correcta. Para agregar solo un poco, también puedes usar el flipdim más general:

a = flipdim(a, 1); % Flips the rows of a a = flipdim(a, 2); % Flips the columns of a

Un pequeño truco adicional ... si por alguna razón tienes que voltear AMBAS dimensiones de una matriz de 2-D, puedes llamar a flipdim dos veces:

a = flipdim(flipdim(a, 1), 2);

o llame a rot90 :

a = rot90(a, 2); % Rotates matrix by 180 degrees