retrieve value from specific location of matrix

3 visualizaciones (últimos 30 días)
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

Respuesta aceptada

Oleg Komarov
Oleg Komarov el 1 de Jun. de 2011
use sub2ind to create from coordinates an index that points to the position.
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 comentarios
Matt Fig
Matt Fig el 2 de Jun. de 2011
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.
Mohammad Golam Kibria
Mohammad Golam Kibria el 2 de Jun. de 2011
yes this is correct.
Thanks.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by