searching for vector values in a matrix

2 visualizaciones (últimos 30 días)
Ahmed Alnahdi
Ahmed Alnahdi el 28 de Abr. de 2015
Comentada: Ahmed Alnahdi el 28 de Abr. de 2015
Hi, I have a vector with 3 specific values and I want to find their indices in a matrix.
  1 comentario
James Tursa
James Tursa el 28 de Abr. de 2015
What are the dimensions of the matrix? Do the values have to be next to each other in the same row or column?

Iniciar sesión para comentar.

Respuesta aceptada

Mohammad Abouali
Mohammad Abouali el 28 de Abr. de 2015
Editada: Mohammad Abouali el 28 de Abr. de 2015
% Creating a sample matrix
yourMatrix=reshape(1:15,5,3)
yourMatrix =
1 6 11
2 7 12
3 8 13
4 9 14
5 10 15
% Creating a sample vector with three values.
yourVector=[1,7,14];
% Now getting the row and cols of those values.
[rows, cols]=ind2sub( size(yourMatrix), ...
arrayfun(@(v) find(yourMatrix==v), ...
yourVector(:)) )
rows =
1
2
4
cols =
1
2
3
The rows and cols of 1,7,14 (the three specific values) are provided. If you are looking only for linear index number then just run:
linIndex=arrayfun(@(v) find(yourMatrix==v), yourVector(:))

Más respuestas (1)

Image Analyst
Image Analyst el 28 de Abr. de 2015
If yourVector is an integer valued vector or a floating point vector with values that are multiples or divisors of 2, then try
firstIndex = find(yourVector == firstSpecificValue);
secondIndex = find(yourVector == secondSpecificValue);
thirdIndex = find(yourVector == thirdSpecificValue);

Categorías

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

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by