Superimposing matrices in a specific location

1 visualizzazione (ultimi 30 giorni)
I have two matrices, one 1024x1024 and one 101x101. 95% of the matrices consists of zeros, besides the central circular parts which have values ranging between 0 and 1. When displayed, the matrices show a circle.
I want to superimpose the smaller matrix onto the larger matrix in a specific location from the origin of the larger matrix. How can I extract the values from the smaller matrix and superimpose them onto the larger matrix?
Thanks

Risposta accettata

Matt J
Matt J il 18 Ott 2019
Modificato: Matt J il 18 Ott 2019
Something like this, perhaps:
[i0,j0]=deal(700,850); %target location
[I,J,S]=find(smallMatrix);
result = largeMatrix + accumarray([I-51+i0,J-51+j0], S ,[1024,1024]);
  2 Commenti
Allie Feinberg
Allie Feinberg il 18 Ott 2019
Thanks so much, this worked!
Matt J
Matt J il 18 Ott 2019
Modificato: Matt J il 18 Ott 2019
Glad to hear it, but please Accept-click the answer to indicate this!

Accedi per commentare.

Più risposte (0)

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by