Logical indexing in cell array
97 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
matuser123
am 14 Okt. 2016
Beantwortet: Sulaymon Eshkabilov
am 4 Jul. 2021
Is there a way to search strings in a cell array similar to numeric arrays?
a = [1 2 3 4 5 6];
>> idx = find(a==3)
idx = 3
>> b = {'1' '2' '3' '4' '5' '6'};
>> idx = find(b=='3')
Undefined function 'eq' for input arguments of type 'cell'.
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 14 Okt. 2016
Use ismember to search cell arrays:
b = {'1' '2' '3' '4' '5' '6'};
logicalIndex = ismember(b, '3') % Or...
actualIndex = find(ismember(b, '3'))
0 Kommentare
Weitere Antworten (3)
michio
am 14 Okt. 2016
Using cellfun is one way.
b = {'1' '2' '3' '4' '5' '6'};
cellfun(@(x) strcmp(x,'3'), b)
1 Kommentar
Sulaymon Eshkabilov
am 4 Jul. 2021
Now, what michio suggested works perfectly ok:
b = {'1' '2' '3' '4' '5' '6'};
b(cellfun(@(x) strcmp(x,'3'), b))={'Found 3'}
So this is another good solution for this exercise.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!