MATLAB:在范围内查找函数

MATLAB: Find function within range

如何在特定范围内使用find功能。

比如说,我有一个包含随机值的数组 arr1。我有我想分析的部分的开始和结束索引(在这个例子中,我想找到值大于 0.8 时的第一次出现)

这里如何将 find 函数与开始和结束索引以及条件一起使用?

例如:

arr1 = rand(1000,1);
start_ind = [100;500;850];
end_ind = [160;620;925];

for i = 1:length(start_ind)
    output = find(arr1(start_ind(i):end_ind(i)) >=0.8); % ????
end 

非常感谢,

使用find的第二个参数只得到第一个匹配项。然后,您可以通过添加 start_ind - 1:

来移动索引
arr1 = rand(1000,1);
start_ind = [100; 500; 850];
end_ind = [160; 620; 925];

output = zeros(length(start_ind), 1);
for i = 1:length(start_ind)
    output(i) = find(arr1(start_ind(i):end_ind(i)) >=0.8, 1) + start_ind(i) - 1;
end