Hello,
I have a 4D matrix at the moment which contains coordinates (X, Y, Z). I would like to know how can I rotate that matrix easily? I know the rotation matrices in space (these are 3x3 matrices) upon X, Y, and Z axes but I fail to do in 1 line the rotation of my 4D matrix.
If I extract a single value from the matrix, and rotate it using a rotation matrix it works, but how can I rotate the whole 4D matrix? For example I extract a value of my 4D matrix:
AA=D(2,5,44,:)
I make sure I have the coordinates on 1 line:
AA2=AA(1,:)
I rotate the point:
AA2rot=AA2*Rotz
Rotz is a 3x3 rotation matrix. And this works, but how can I do it for all elements of my 4D matrix (D)?

 採用された回答

Walter Roberson
Walter Roberson 2015 年 10 月 14 日

0 投票

AA2 = reshape(D, [], 3);
AA2rot = AA2 * RotZ;
AArot = reshape(AA2rot, size(D));

1 件のコメント

Matt
Matt 2015 年 10 月 14 日
Awesome thanks a lot! I learned the use of the reshape function. Very useful!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeComputational Geometry についてさらに検索

質問済み:

2015 年 10 月 14 日

コメント済み:

2015 年 10 月 14 日

Community Treasure Hunt

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

Start Hunting!

Translated by