在matlab
中,我有this .mat
个文件。如果您向内看并双击带有线索1.000
的单元格,您会发现显示的值为0.999999999259113
。没关系。但是,当我使用例如以下命令时:
>> sel = find (u2 == 0.999999999259113 );
我得到的答案如下:
>> sel
sel =
5
我们有多个0.999999999259113
值。不是吗?他们在哪?什么是5
应该是什么?
现在,当我来到以下功能,因为.mat
文件与this图片有关:
function s = pixel(x, y)
pixels = [];
index = 1;
for i=1:length(y)
for j=1:length(y)
if y(i,j) == 0.999999999259113;
pixels(index) = x(i,j);
index = index+1;
end
end
end
pixels
end
而且,当我运行该函数时,我得到以下内容(I:image,u2:.mat文件):
像素(i,U2);
pixels =
[]
空?这应该是什么意思?
为什么我没有得到预期结果的任何想法,虽然命令似乎在逻辑上有效?
感谢。
答案 0 :(得分:3)
您可以设置容差,而不是检查确切的浮点相等吗?找到接近1.0的值,如下所示:
tolerance = 0.01;
sel = find(abs(u2 - 1.0) < tolerance);
答案 1 :(得分:1)
尝试使用
if abs(y(i,j)-)<1e-6
而不是
if y(i,j) == 0.999999999259113;