You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB中如何筛选不包含"_B"字符串的文件?

问题分析与解决

你遇到的问题核心在于对Matlab contains 函数的使用逻辑理解有误,咱们一步步拆解修正:

错误原因拆解

  1. contains不需要通配符:Matlab的contains是直接检测字符串中是否包含指定子串,你写的'*_B*.png'会被当成完整的带*的子串去匹配——而你的文件名里显然不会有*,这直接导致判断结果完全偏离预期。
  2. 逻辑取反的匹配偏差:原本想筛选不包含_B的文件,但错误的通配符让contains返回的结果全错,再加上波浪号取反,自然出现了选中相反文件的情况。

修正后的代码

把判断条件改成下面这样就能实现需求:

for k=1:n
    if(~contains(files(k).name, '_B'))
        % 这里写你的文件处理逻辑
    end
end

补充说明

  • 这个条件会精准筛选出文件名中不包含"_B"子串的文件,完全符合你的要求(不会排除仅含"B"的文件,只有当子串是"_B"时才会被排除)。
  • 如果你的目标文件都是.png后缀,担心误匹配其他格式的话,可以额外加后缀校验:
if(~contains(files(k).name, '_B') && endsWith(files(k).name, '.png'))
    % 处理逻辑
end

内容的提问来源于stack exchange,提问作者Matte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:06:08