【问题标题】:(Matlab) How to check if cell array contains string(Matlab)如何检查单元格数组是否包含字符串
【发布时间】:2019-03-27 10:08:33
【问题描述】:

我正在尝试从 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 和 string_eastern,如果值匹配,那么我希望它返回那个单元格值。这适用于 string_eastern 只有 1 个元素但不能使用超过 1 个元素的情况。

【问题讨论】:

  • 您无需运行循环并检查每个单元格。你有一些功能可以在一个瞬间得到你想要的。阅读有关该功能的内容。

标签: matlab


【解决方案1】:

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

string = cell{1};

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

【讨论】:

    猜你喜欢
    • 2019-10-22
    • 2013-10-03
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 2018-05-04
    • 2012-08-11
    相关资源
    最近更新 更多