2014-01-18 5 views
0

У меня есть массив ячеек 150 на 1. Моя проблема в том, почему мы не используем функцию eq, как в значение species(1) = 'setosa', , но когда я пишу species(1) == 'setosa' Я ожидал получить логический 1, но MATLAB дает Undefined function eq for cell array. Я требую этого, потому что хочу преобразовать его в логический массив. Как мне это достичь?Преобразование из массива ячеек

+0

PS: ответ на ваш предыдущий вопрос - 'grp2idx'. – Jonas

ответ

0

Вы можете сделать это, используя find() и strcmp() вместе.

Пример:

stts = {'Gable','Hip','Shed','Shed','Other'}; % string cell array 
[truefalse,index]=find(strcmp(stts,'Shed')) % do it here if you want to find `Shed` 

После этого, truefalse являются логическими значениями и index являются согласно индексам найден.

truefalse = 

    1  1 


index = 

    3  4 
+0

У меня есть еще одна проблема: первые 50 элементов являются «setosa», поэтому я получаю индекс = 50 – AbKDs

+0

@TrafalgarLaw См. Обновленный. – herohuyongtao

+0

Да, теперь его работа, спасибо @herohuyongtao :)! – AbKDs

Смежные вопросы