How to: map selected entries of one matrix to entries of a second?
6 views (last 30 days)
Show older comments
Anthony Azevedo
on 2 Apr 2018
Commented: Anthony Azevedo
on 2 Apr 2018
I have a matrix, A, of 1024x1280 elements(an image), and I have two mapping matrices, Row_map (670 X 1428) and Col_map (670 X 1428), that take element Row_map(1,1), Col_map(1,1) of A (i.e. element A(4,892) where Row_map(1,1)=4, Col_map(1,1)=892) and put that value into matrix R(1,1), where elements of R are a rotated subset of values in A. R is also 670 X 1428, and some entries of Row_map, Col_map and R are nans. (Specifically, it's just the corner of the image, rotated an arbitrary angle, but I think that's beside the point). Once I have this mapping, I will go through a series of matrices like A (a video), and perform the same mapping.
Currently I'm doing the silly thing of looping over row and column indices of Row_map and Col_map to enter each value of R. There has to be a more efficient way, but I'm blanking right now. Really appreciate your help.
0 Comments
Accepted Answer
More Answers (1)
KSSV
on 2 Apr 2018
Read about sub2ind, ind2sub.
R = NaN(size(Row_map)) ;
idx = sub2ind(size(A), Row_map(:),Col_map) ;
R(idx) = A(idx) ;
1 Comment
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!