Replicate and rotate in 4D
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi all,
Let X1, X2, X3, X4 be row vectors of size [1xN1], [1xN2], [1xN3] and [1xN4] respectively. I would like to replicate and rotate these row vectors to obtain 4 corresponding 4D arrays A1, A2, A3 and A4 with size [N1xN2xN3xN4]. X1 corresponds the 1st dimension of A1, X2 corresponds the 2nd dimension of A2, X3 corresponds the 3rd dimension of A3, and X4 corresponds the 4th dimension of A4. For example, I can obtain A1 and A2 as follows
A1=repmat(X1',[1 N2 N3 N4]);
A2=repmat(X2,[N1 1 N3 N4]);
A3 can be obtained with the following "amateur" code
A3Temp=repmat(X3,[N2 1 N1]); % [N2xN3xN1] array
A3TempRot=rot90_3D_2t(A3Temp,2,3,1,1); % Rotate 2 times to obtain [N1xN2xN3] array
A3=repmat(A3TempRot,[1 1 1 N3]);
For A4, I do not know how to do. After that, I would like to rotate these arrays to obtain [N4xN2xN3xN1] arrays. Do you have any idea about this? Thank you in advance for your help.
Tuan
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 3 Jun. 2013
Have a look at
[A1, A2, A3, A4] = ndgrid(X1, X2, X3, X4);
Also see permute()
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Array Geometries and Analysis finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!