I have a 4 Dimensional Matrix and i want to get its transpose

18 views (last 30 days)
val(:,:,1,1) =
-0.0011 + 0.0005i -0.0001 - 0.0006i 0.0005 - 0.0004i 0.0004 - 0.0005i
0.0001 - 0.0002i 0.0005 - 0.0006i -0.0001 - 0.0003i 0.0001 - 0.0005i
val(:,:,2,1) =
1.0e-03 *
0.0853 + 0.0961i -0.0836 + 0.5605i -0.2264 - 0.2537i -0.4819 + 0.4021i
0.2431 - 0.0009i 0.0080 - 0.1446i 0.0173 - 0.3306i 0.3036 + 0.0662i
val(:,:,3,1) =
1.0e-03 *
0.4071 + 0.1592i 0.0390 + 0.0368i 0.1849 + 0.1427i 0.1037 - 0.0101i
-0.3148 + 0.4124i 0.1739 - 0.8511i 0.4364 + 0.2318i -0.4959 - 0.0581i
val(:,:,4,1) =
1.0e-03 *
-0.3427 - 0.2354i -0.0962 + 0.2063i 0.0545 - 0.5590i 0.4838 - 0.4740i
-0.1377 + 0.3177i 0.4218 - 0.1650i 0.5585 - 0.0281i 0.8008 + 0.3560i
val(:,:,1,2) =
0.0000 + 0.0005i -0.0005 - 0.0001i 0.0009 + 0.0005i -0.0003 - 0.0004i
-0.0003 - 0.0001i -0.0001 - 0.0003i 0.0001 - 0.0007i 0.0010 - 0.0008i
val(:,:,2,2) =
1.0e-03 *
0.0735 - 0.0389i 0.2078 + 0.6834i -0.4282 + 0.1815i 0.0376 + 0.1491i
0.5771 + 0.3827i 0.2349 - 0.0414i 0.3709 + 0.4640i -0.1642 + 0.0532i
val(:,:,3,2) =
1.0e-03 *
-0.2583 + 0.1898i -0.6208 - 0.1740i -0.6824 + 0.6126i 0.7040 + 0.1055i
-0.5507 - 0.5081i 0.2960 + 0.1625i -0.3143 + 0.2994i -0.2992 + 0.1128i
val(:,:,4,2) =
1.0e-03 *
0.3043 + 0.5059i -0.1311 + 0.4960i 0.1339 - 0.1343i -0.3379 - 0.1514i
0.6952 + 0.5950i 0.1602 + 0.3575i 0.6829 + 0.7096i 0.4307 - 0.7628i
So this is my 4 dimensional matrix and i want to find its transpose using a for loop.
  5 Comments
James Tursa
James Tursa on 20 Jul 2022
Edited: James Tursa on 20 Jul 2022
@Torsten "A requirement for a (2d)-matrix to have a transpose is that it is square."
Huh? Of course one can transpose any size 2D matrix. E.g.,
A = [1 2 3 4; 5 6 7 8]
A = 2×4
1 2 3 4 5 6 7 8
A.'
ans = 4×2
1 5 2 6 3 7 4 8
Torsten
Torsten on 20 Jul 2022
A requirement for a (2d)-matrix to have a transpose is that it is square.
Ok, it's nonsense.

Sign in to comment.

Answers (2)

Jon
Jon on 20 Jul 2022
Edited: Jon on 20 Jul 2022
You can use the MATLAB permute function for this and not use any loops
  2 Comments
Nir Vaishnav
Nir Vaishnav on 20 Jul 2022
how do i use it in code?......i am still unclear after seeing the help file.
Jon
Jon on 20 Jul 2022
Let me first ask, what is it that you actually want to do. What exactly do you mean by the "transpose" of a 4 dimensional array. Ideally please provide a simple example, of your desired input array and output array.

Sign in to comment.


James Tursa
James Tursa on 20 Jul 2022
Edited: James Tursa on 20 Jul 2022
Maybe this does what you want, which is transpose the first two dimensions:
permute(val,[2 1 3 4])
Or you could use this function to get the same result:
pagetranspose(val)

Categories

Find more on Elementary Math in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!