(Matlab) Как проверить, содержит ли массив ячеек строку - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь получить данные из электронной таблицы Excel и получить только информацию из ячеек, соответствующих строке.Например.если ячейка A10 содержит слово «Canada», она должна вернуть эту ячейку.

Я пытался использовать strcmp (https://www.mathworks.com/help/matlab/ref/strcmp.html), чтобы проверить, содержится ли строка в аргументе 1 в массиве ячеек, содержащем много строк,второй аргумент

[num,txt,raw] = xlsread('\\Client\C$\Users\Fish\Desktop\dataset\dataset.csv');

mytable = cell(raw); 


for i = 1:54841 
    array_index = i;
    string_index = mytable(i,2);
    string_eastern = {'Canada', 'Ontario'};

    if strcmp(string_index,string_eastern);
       fprintf('%d\n',array_index)
    end
end

В приведенном выше примере, если мой string_eastern содержит только один элемент, скажем 'Canada', он будет возвращать значение индекса каждого экземпляра 'Canada'. Если я добавлю больше элементов, я ожидаюон будет возвращать значения индекса для каждого экземпляра, где string_index будет совпадать со строкой, содержащейся в string_eastern. Однако я не получу никаких результатов, если добавлю больше элементов.Значения совпадают, тогда я хочу, чтобы он возвращал это значение ячейки. Это работает, когда string_eastern только 1 элемент, но не работает с более чем 1.

1 Ответ

1 голос
/ 27 марта 2019

Для доступа к содержимому ячейки используйте фигурные скобки {}. Поэтому, если бы я хотел получить доступ к первому элементу своей ячейки, я бы сказал так:

string = cell{1};

Узнайте больше о документации MATLAB о ячейках , чтобы узнать больше и ответить на любые ваши дополнительные вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...