我想要交叉一些小数值:
frac_value = intersect (find(xmin > 0) , find(xmin < 1))
其中xmin
是小数值的大向量。我打印了xmin值到0.16f
,其中一些值显示值0.0000000000000000
,但frac_value
返回它的位置。我不知道为什么。我怎样才能完美地得到小数值的位置?
对此有任何帮助将不胜感激。
答案 0 :(得分:2)
你写的代码有点混淆。使这更清楚的一种方法是:
frac_value = find(xmin > 0 & xmin < 1);
您实际上在做的是找到xmin
的索引,它们都大于0且小于1.而不是使用intersect
,只需使用{{1 }}。
如果你想找到这些值所在的位置,那么上面的代码是完全可以接受的。但是,我怀疑由于你的帖子的标题,这不是你想要的。如果您想找到实际小数值,则需要索引到find
而不是xmin
:
frac_value
但是,我根本不会在这里使用values = xmin(frac_value);
或find
。更有效和更简单的是使用逻辑索引而不使用intersect
或find
(我认为这会更快地提高性能):
intersect
values = xmin(xmin > 0 & xmin < 1);
现在应该包含介于0和1之间的values
值,而不是它们的位置。