0
H = [1 1; 1 2; 2 -1; 2 0; -1 2; -2 1; -1 -1; -2 -2;]';
我需要阈值,使得边界值:阈值函数
H(I,j) = 0 if H(I,j) > =1,
else H(I,j) = 1 if H(I,j) <=0
我应用这个代码
a = H(1,1)
a(a<=0) = 1
a(a>=1) = 0
每个值但这意味着在第一个已经影响值步骤可能会再次改变。阈值的正确方法是什么?上面的代码给出了不正确的答案。我应该得到
a = [0 0; 0 0; 0 1; 0 1; 1 0; 1 0; 1 1; 1 1]
请帮
编辑
基于答案我现在越来越
0 0
0 0
1.0000 0.3443
0.8138 0.9919
0 0.7993
0.1386 1.0000
1.0000 1.0000
1.0000 1.0000
可以看出,第3-6行都是不正确。请帮助
谢谢您的回复,其中的作品,但并不适用于所有情况。例如,有一些实际数值不受影响。我已经更新了我的问题。请看看实际的数值,以及如何限制他们的范围> – SKM
@SKM这可能是[比较浮动值的常见问题](http://stackoverflow.com/questions/686439/why-is- 24-0000-不等于到24-0000合MATLAB)。要解决这个问题,定义一个容差并将其应用于比较。查看更新后的答案(第二部分) –
我已经这样做了,因为我猜mythreshold函数是不正确的。现在是正确的,而不是应用宽容? ind1 = H> 0; ind2 = H <= 0; H(ind1)= 0; H(ind2)= 0; H(ind2)= 1; – SKM