"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)
我刚刚发现一件非常非常奇怪的事情:"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)