首页 > 解决方案 > (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 只包含一个元素,比如“加拿大”,它将返回“加拿大”的每个实例的索引值。如果我添加更多元素,我希望它会为 string_index 与 string_eastern 中包含的字符串匹配的每个实例返回索引值。但是,如果我添加更多元素,我根本不会得到任何结果。

几乎我想检查我的 string_index agaisnt string_eastern,如果值匹配,那么我希望它返回该单元格值。这适用于 string_eastern 只有 1 个元素但不适用于超过 1 个元素的情况。

标签: matlab

解决方案


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

string = cell{1};

阅读有关单元的 MATLAB 文档的更多信息,以了解更多信息并回答您的任何其他问题。


推荐阅读