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 Comments

Stephen23
Stephen23 on 12 Apr 2018
Edited: Stephen23 on 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 on 12 Apr 2018
Edited: Friend on 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.
  • 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:
  • 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

Sign in to comment.

Answers (0)

Categories

Asked:

on 12 Apr 2018

Commented:

on 12 Apr 2018

Community Treasure Hunt

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

Start Hunting!