2
t=find(str.tubetime >= str.time,1);

假设 tubetime 是 1 x 1001 个元素的矩阵 假设 time 是 double =0.0012

根据我对代码的理解,它找到了 tubetime 矩阵的第一个值,该值等于或大于返回该值在 tubetime 中的位置的索引。

如果我是正确的,为什么我的索引值为 244。当 0.0012 的值包含在从 231 到索引点 250 的索引点处时。

编辑:

我刚刚仔细检查了我的变量是否准确,因为我目前处于调试模式,并从系统中读取它。感谢您的意见,您知道它可能有什么问题吗?

这是显示值的屏幕截图

截屏

4

3 回答 3

2

当您在 printscreen 中查看值时,它可能会在小数点后 4 位后被截断。请参阅我上面对您原始帖子的评论。

于 2012-11-21T23:12:14.227 回答
0

您对 FIND 的描述是正确的,但您的变量之一与您描述的不同。例如,

t=find([1 1 2 3 4 5 6] >= 3,1)

返回 4,因为它应该。

于 2012-11-21T22:50:16.813 回答
0

您已明确要求它在您的语法中只返回一个元素

time = zeros(1,1001);
time(231:250) = 0.0012 % setting an array where indices 231 - 250 are 0.0012 else is zero
find(time>=0.0012)
% gives all indices
find(time>=0.0012,1)
%returns 231 only
find(time>=0.0012,2)
%returns 231,232

PLUS 检查这些值是否以短格式显示,即它们是 0.001199 但显示为 0.0012。

于 2012-11-21T23:07:04.363 回答