(Matlab)如何检查单元格数组是否包含字符串

时间:2019-03-27 00:16:22

标签: matlab

我正在尝试从Excel电子表格中获取数据,并且仅从与字符串匹配的单元格中获取信息。例如。如果单元格A10中包含“加拿大”一词,则应返回该单元格。

我尝试使用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_index是否为string_eastern,如果值匹配,那么我希望它返回该单元格值。当string_eastern仅是1个元素但不能使用超过1个元素时,此方法有效。

1 个答案:

答案 0 :(得分:1)

要访问单元格内容,请使用大括号{}。因此,如果我想访问单元格的第一个元素,我会这样说:

string = cell{1};

详细了解关于cells的MATLAB文档,以了解更多信息并回答您的其他问题。