Translate/Rotate submatrix

I have a 512x512x100 matrix A which contains a 100x100x20 submatrix S. I want to translate (and rotate) S. In few words, the final result must be a 512x512x100 matrix containing S, but in a different position (and if possible, rotated). How can I do that?

4 Kommentare

Stephen23
Stephen23 am 12 Apr. 2018
Bearbeitet: Stephen23 am 12 Apr. 2018
  • Translation: perhaps using indexing, or interpolation. What happens to the elements where the subarray used to be: do they keep their values, or get new values?
  • Rotation: by multiples of 90 degrees, or by any arbitrary angle?
Friend
Friend am 12 Apr. 2018
Bearbeitet: Friend am 12 Apr. 2018
  • They get new values (zeros)
  • If possible, any arbitrary angle
PS: the only non-zero values contained in A, are inside S.
Stephen23
Stephen23 am 12 Apr. 2018
  • Translation: depending on your requirements you could use indexing, or circshift. What happens if the new subarray position lies across/outside the array dimensions?
  • Rotation of a array by an arbitrary angle is not clearly defined:
Friend
Friend am 12 Apr. 2018
  • It's true, I solved the translation problem through simple indexing.
  • I had a feeling that rotating by an arbitrary angle wouldn't be possible. I'll try with 90° rotations. thanks

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Gefragt:

am 12 Apr. 2018

Kommentiert:

am 12 Apr. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by