微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在另一个单元格数组中查找一个单元格数组的字符串

如何解决在另一个单元格数组中查找一个单元格数组的字符串

var_names = {'X1','X2'};
data_pool = {'AB\CD\X1','AB\CD\X1_A','AB\CD\X1_B','AB\CD\X2','AB\CD\X2_A','AB\CD\X2_B'};

我需要数据的变量名称是X1和X2。数据池具有名称相似的变量。 '_A'和'_B'以及字符串具有路径名,因此data_pool中的字符串总是比var_names中的字符串长。

我需要将data_pool缩减为以下内容

var_names_new = {'AB\CD\X1','AB\CD\X2'};

仅X1和X2的完整路径,而不是其他后缀的完整路径。

解决方法

您需要检查当前data_pool变量是否包含X1X2值。

result = {};

count = 0;
for i=1:length(data_pool)
    for j=1:length(var_names)
        new_pool = strrep(string(data_pool(i)),'ABCD\','');
        if contains(string(var_names(j)),new_pool)
            count = count+1;
            val = strcat('ABCD\',new_pool);
            result{1,count} = val;
        end
    end
end

结果:

["ABCD\X1"]    ["ABCD\X2"]
,
result = data_pool(endsWith(data_pool,strcat('\',var_names)));

其工作原理如下:

  1. strcat'\'中的每个字符串前加上var_names
  2. endsWithdata_pool中产生字符串的逻辑索引,该索引以上一步中的任何字符串结尾;
  3. 索引到data_pool会产生所需的结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。