How to find single index values in a matrix?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dalton Houghton-Schaffer
le 9 Sep 2019
Réponse apportée : Walter Roberson
le 9 Sep 2019
B1 = [2 4 6 8; 10 12 14 16; 18 20 22 24; 26 28 30 32]
idx_8=find(B1==8)
[row,column]=find(B1~=8)
RowColumn = [row:column]
Find the single index values for 26, 4, and 28?
How is a matrix indexed with single indexing values?
3 commentaires
Walter Roberson
le 9 Sep 2019
[was_found, idx] = ismember([26 4 28], B1);
will assign to two variables: was_found and idx. was_found will be true for each element of [26 4 28] that was located somewhere in B1, and will be false for any element that was not found in B1. idx will be 0 for any element that was not found, and otherwise will be the index of the "first" location of the value in B1. idx will be a "linear index"
Réponse acceptée
madhan ravi
le 9 Sep 2019
Modifié(e) : madhan ravi
le 9 Sep 2019
https://in.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html - read it for better understanding
Linear_indices = find(ismember(B1,[26 4 28])); % you mean linear indices by saying single indices
B1(Linear_indices) % would give [26 4 28]
5 commentaires
Bruno Luong
le 9 Sep 2019
Modifié(e) : Bruno Luong
le 9 Sep 2019
No IMO you should keep it. The difference is interesting to highlight.
Plus de réponses (1)
Walter Roberson
le 9 Sep 2019
[was_found, idx] = ismember([26 4 28], B1);
will assign to two variables: was_found and idx. was_found will be true for each element of [26 4 28] that was located somewhere in B1, and will be false for any element that was not found in B1. idx will be 0 for any element that was not found, and otherwise will be the index of the "first" location of the value in B1. idx will be a "linear index"
0 commentaires
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!