Angenommen, ich habe das Zellenarray
strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}
Was soll ich tun, wenn ich den Index von finden möchte 'KU'
?
string
matlab
cell-array
Benjamin
quelle
quelle
Antworten:
Ich denke, der folgende Code könnte den Trick machen:
Dies kehrt zurück
quelle
Die verstrichene Zeit beträgt 0,001976 Sekunden.
Die verstrichene Zeit beträgt 0,000014 Sekunden.
SO,
strcmp('KU', strs)
dauert eindeutig viel weniger Zeit alsismember(strs,'KU')
quelle
Seit 2011a wird empfohlen:
Wenn Sie den Integer-Index erhalten möchten (den Sie oft nicht benötigen), können Sie Folgendes verwenden:
strfind
ist veraltet, versuchen Sie es also nicht zu verwenden.quelle
Ich sehe, dass jeder den wichtigsten Fehler in Ihrem Code übersehen hat:
sollte sein:
oder
Nun, wenn Sie bei der Verwendung bleiben
Du wirst keine Sorgen haben :).
quelle
Andere Antworten sind in diesem Fall wahrscheinlich einfacher, aber der Vollständigkeit halber dachte ich, ich würde die Verwendung von cellfun mit einer anonymen Funktion hinzufügen
Dies hat den Vorteil, dass Sie die Groß- und Kleinschreibung leicht unabhängig machen oder in Fällen verwenden können, in denen Sie über ein Zellarray von Strukturen verfügen:
quelle
Kürzester Code:
Es wird aber nur die erste Position zurückgegeben
strs
. Wenn das Element dann nicht gefunden wirdind=0
.quelle
Die Funktionen strcmp und strcmpi sind der direkteste Weg, dies zu tun. Sie durchsuchen Arrays.
quelle
Hast du versucht
siehe Link
Alternative,
sollte auch funktionieren, wenn ich mich nicht irre.
quelle