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

遍历单列数组查找空数组[]报错:Invalid Data Type Specified

问题原因分析
  • 你误把**空数值数组[]**当成了字符串"[]"来匹配,但names_en里的目标元素实际是空数组,并非字符串形式的"[]",直接用==比较不同类型的数据就会触发类型错误。
  • 另外,Matlab中处理元胞数组元素的比较,尤其是空数组的判断,不能直接用普通等式比较,得用专门的函数。
解决方案

针对两种目标情况分别处理:

情况1:查找字符串形式的"[]"

如果names_en元胞里确实存的是字符串"[]",用strcmp函数替代==(==用于数组逐位比较,元胞字符串比较推荐用strcmp):

for x = 1:n
    if strcmp(names_en{1,x}, "[]")
        display(new_block_name_enable{x,1});
    end
end

情况2:查找空数值数组[]

如果目标是匹配空的数值数组,用isempty函数判断元素是否为空:

for x = 1:n
    if isempty(names_en{1,x})
        display(new_block_name_enable{x,1});
    end
end

额外优化:同时匹配两种情况

如果需要同时查找空数组和字符串"[]",可以把两个条件用逻辑或||组合:

for x = 1:n
    current_elem = names_en{1,x};
    if isempty(current_elem) || strcmp(current_elem, "[]")
        display(new_block_name_enable{x,1});
    end
end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:36:23