retrieve value from specific location of matrix
2 次查看(过去 30 天)
显示 更早的评论
Hi suppose I have a matrix as follows:
m =
1 1
1 3
1 5
2 2
2 4
3 1
3 3
3 5
each row of m is the row,column index respectively.
And I have another matrix I.
I need to find the values of I of location m. How can I do that?
Is there anybody to help me? Thanks
0 个评论
采纳的回答
Oleg Komarov
2011-6-1
m = [1 1
1 3
1 5
2 2
2 4
3 1
3 3
3 5]
I = rand(5);
sub2ind(size(I),m(:,1),m(:,2))
To skip the overhead you can apply the engine of sub2ind directly (2d adaptation):
(m(:,2)-1)*size(I,1) + m(:,1)
3 个评论
Matt Fig
2011-6-2
You are using SUB2IND incorrectly. SUB2IND returns the indices for use into an array, not the indexed array. So, use it like this:
IDX = sub2ind(size(I),m(:,1),m(:,2)); % Create index vector
I(IDX) % Index into I with IDX.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!