gpt4 book ai didi

matlab - 两个数组比较期间第一个大于的索引

转载 作者:行者123 更新时间:2023-12-02 21:43:34 32 4
gpt4 key购买 nike

我有两个数组阈值和值。

threshold=[10 22 97]  
values=[99 23 77 11 8 10]

我想输出 idx,使得阈值(idx-1) <值(i) <=阈值(idx)。也就是说,上面的示例输出将是

output=[4 3 3 2 1 1]  

可以产生上述输出的简单代码是

output=ones(1,length(values))*(length(values)+1); 
for i=1:length(values)
for j=1:length(threshold)
if(values(i)>threshold(j))
output(i)=j;
end
end
end

有没有简单的方法可以做到这一点。我想避免循环。

最佳答案

您可以使用histc命令,稍微调整threshold数组

>> threshold=[-inf 10 22 97 inf];
>> values=[99 23 77 11 8 10];
>> [~, output] = histc( values, threshold+.1 )
output =

4 3 3 2 1 1

阈值的修改是由于箱边界决策的“小于”/“小于等于”比较类型所致。

关于matlab - 两个数组比较期间第一个大于的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19923619/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com