Допустим, у меня есть массив ячеек
strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}
Что мне делать, если я хочу найти индекс 'KU'
?
string
matlab
cell-array
Бенджамин
источник
источник
Ответы:
Я думаю, следующий код может помочь:
Это возвращает
источник
Истекшее время 0,001976 секунды.
Прошедшее время 0,000014 секунды.
ТАК, явно
strcmp('KU', strs)
занимает гораздо меньше времени, чемismember(strs,'KU')
источник
С 2011a рекомендуемый способ:
Если вы хотите получить целочисленный индекс (который вам часто не нужен), вы можете использовать:
strfind
устарел, поэтому постарайтесь не использовать его.источник
Я вижу, что все упустили самый важный недостаток в вашем коде:
должно быть:
или
Теперь, если вы будете использовать
Вам не о чем беспокоиться :).
источник
Другие ответы, вероятно, в этом случае проще, но для полноты я подумал, что добавлю использование cellfun с анонимной функцией.
который имеет то преимущество, что вы можете легко сделать его нечувствительным к регистру или использовать его в тех случаях, когда у вас есть массив ячеек структур:
источник
Самый короткий код:
Но возвращает только первую позицию в
strs
. Если элемент не найден, тоind=0
.источник
Функции strcmp и strcmpi - самый простой способ сделать это. Они ищут в массивах.
источник
ты пробовал
см. ссылку
альтернативно,
тоже должно работать, если я не ошибаюсь.
источник