"find" 命令在 MATLAB 7.8.0 中没有产生正确的输出

"find" command does not produce correct output in MATLAB 7.8.0

我刚刚发现一件非常非常奇怪的事情:"find" 在使用 "random" 函数时在 MATLAB 7.8.0 (R2009a) 中找不到任何东西!!!有谁知道原因吗?例如:

b=random('unif',1,3,1,4)

b =

1.2978    2.7994    1.9008    1.4113

find(b==2.7994)

ans =

空矩阵:1×0

如你所见,第二个元素是2.7994。

有趣的是,当我如下手动定义 b 时,"find" 可以产生正确的输出:

b=[1.2978 2.7994 1.9008 1.4113]

b =

1.2978    2.7994    1.9008    1.4113

find(b==2.7994)

ans =

 2

你知道为什么吗?

谢谢。

这是因为当您在 b = random('unif',1,3,1,4) 中显示值时,它们在屏幕上的显示位数比实际中少...请参阅 format 命令以显示更多数字...

无论如何,您永远无法显示所有数字,您唯一的选择是找到具有一定公差的值:

find(abs(b - 2.7994) <= 0.0001)