matlab中如何找到数组中某个数值的索引的问题

正常情况下,时域find函数就可以,但是现在我的数组是由一系列小数构成,由于matlab中二进制表示浮点数的原因,使用find函数时候,提示Empty matrix: 0-by-1,这是由于我的向量中其实不存在这个数。所以想请问大家该怎么办。

逻辑判断浮点数一般都有这个问题, 不能严格相等, 可以用 (x-x0)<eps 代替x==x0相等判断追问

我对这条语句不是很明白。麻烦可以仔细解释一下吗

追答

比如:
>> x=pi:0.1:10*pi; y=sqrt(x);
>> y(100)
ans =
3.6113

现在来找这个数3.6113
>> find(y==3.6113)
ans =
Empty matrix: 1-by-0
显示找不到
改成:
>> find(abs(y-3.6113)<=1e-4)
ans =
100

温馨提示:答案为网友推荐,仅供参考
相似回答