使用 find 函数报错:ERROR: TypeError: non-boolean (Missing) used in boolean context
技术分享
发布于 2025-07-10 10:54:31
查看 1过去327天
由于 == 函数不支持 non-boolean (Missing) 类型的数据,因此会导致报错,需要使用ismissing 函数先进行判断和筛选,再使用 == 和 find 函数就不会报错。
示例:
1.创建一个 Union{Missing, String}} 类型的数组 X,设置 X[3] 为需要找到的特定字符串:
1.创建一个 Union{Missing, String}} 类型的数组 X,设置 X[3] 为需要找到的特定字符串:

2.运行下面代码,使用 find 找到数组 X 中的特定字符对应的索引值:
# warningFlg = find(X .== "Flg") #由于数据类型不匹配会导致报错
warningFlg = findall(t -> !ismissing(t) && t == "Flg", X) #对 X 进行 ismissing 判断再 find
3.可以看到此时运行了正确的结果,即索引“3”:

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境