ismember: how to read the results quicker?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
wesleynotwise
il 3 Giu 2017
Commentato: wesleynotwise
il 3 Giu 2017
Hello. I would like to know how to return real values instead of logical values when the 'ismember' is used? eg:
A = [1 2 3 4 5];
B = [6 7 4 5 9 10 11 12];
ismember (A,B)
ans =
1×5 logical array
0 0 0 1 1
Is it possible to have this as output?
[4 5]
0 Commenti
Risposta accettata
Stephen23
il 3 Giu 2017
Modificato: Stephen23
il 3 Giu 2017
find(ismember(...))
Keep in mind that logical indexing is more efficient for simple indexing tasks, so the answer to the question posed in your title "ismember: how to read the results quicker?" is actually to do the opposite of what you asked: just use logical indexing, and not subscript indexing (and especially not waste time using find).
Più risposte (1)
Steven Lord
il 3 Giu 2017
Stephen's answer assumed A was of the form 1:N.
A = [5 4 3 2 1];
B = [6 7 4 5 9 10 11 12];
loc = ismember(A, B)
find(loc)
A(loc)
Use the output from ismember to index back into A to retrieve the elements of A that are in B.
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!