How to: map selected entries of one matrix to entries of a second?
3 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
その他の回答 (1 件)
KSSV
2018 年 4 月 2 日
Read about sub2ind, ind2sub.
R = NaN(size(Row_map)) ;
idx = sub2ind(size(A), Row_map(:),Col_map) ;
R(idx) = A(idx) ;
1 件のコメント
参考
カテゴリ
Help Center および File Exchange で Resizing and Reshaping Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!