Effacer les filtres
Effacer les filtres

searching for vector values in a matrix

3 vues (au cours des 30 derniers jours)
Ahmed Alnahdi
Ahmed Alnahdi le 28 Avr 2015
Commenté : Ahmed Alnahdi le 28 Avr 2015
Hi, I have a vector with 3 specific values and I want to find their indices in a matrix.
  1 commentaire
James Tursa
James Tursa le 28 Avr 2015
What are the dimensions of the matrix? Do the values have to be next to each other in the same row or column?

Connectez-vous pour commenter.

Réponse acceptée

Mohammad Abouali
Mohammad Abouali le 28 Avr 2015
Modifié(e) : Mohammad Abouali le 28 Avr 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(:))

Plus de réponses (1)

Image Analyst
Image Analyst le 28 Avr 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);

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by