How to mirror matrix on the diagonal?

326 views (last 30 days)
SL on 21 Oct 2016
I want to mirror data matrix on the diagonal.
Input:
y
|
____ x
Expected output:
x
|_y
I know you these transformations but I cannot get mirror around the diagonal (y=x line from (0,0) to (1,1))
I2 = flipdim(I ,2); %# horizontal flip
I3 = flipdim(I ,1); %# vertical flip
I4 = flipdim(I3,2); %# horizontal+vertical flip
MATLAB: 2016b OS: Debian 8.5
SL on 21 Oct 2016

Thorsten on 21 Oct 2016
I2 = rot90(fliplr(I),-1);
SL on 21 Oct 2016
This is the only answer which work with big matrices.

Massimo Zanetti on 21 Oct 2016
Edited: Massimo Zanetti on 21 Oct 2016
In the case described before it is:
A=[1 2 3;4 5 6;7 8 9]
rot90(A,2)'
which gives:
A= 1 2 3
4 5 6
7 8 9
to
9 6 3
8 5 2
7 4 1
Massimo Zanetti on 22 Oct 2016
I can't see why it shouldn't work... You must give me an example, otherwise I cannot understand. No problems with rectangular matrices.

Fady Samann on 13 Aug 2020
you can do the following:
first, transpose the matrix
A = table.';
Flip it horizontally
A = flip (A,1);
then, flip it verticaly
A = flip (A,2);