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

21 vues (au cours des 30 derniers jours)
Nir Vaishnav
Nir Vaishnav le 20 Juil 2022
Modifié(e) : James Tursa le 20 Juil 2022
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 commentaires
James Tursa
James Tursa le 20 Juil 2022
Modifié(e) : James Tursa le 20 Juil 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 le 20 Juil 2022
A requirement for a (2d)-matrix to have a transpose is that it is square.
Ok, it's nonsense.

Connectez-vous pour commenter.

Réponses (2)

Jon
Jon le 20 Juil 2022
Modifié(e) : Jon le 20 Juil 2022
You can use the MATLAB permute function for this and not use any loops
  2 commentaires
Nir Vaishnav
Nir Vaishnav le 20 Juil 2022
how do i use it in code?......i am still unclear after seeing the help file.
Jon
Jon le 20 Juil 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.

Connectez-vous pour commenter.


James Tursa
James Tursa le 20 Juil 2022
Modifié(e) : James Tursa le 20 Juil 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)

Catégories

En savoir plus sur Elementary Math dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by