gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:45:08 26 4
gpt4 key购买 nike

我有两个数组阈值和值。

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

我想输出 idx 这样 threshold(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

threshold 的修改是由于 bin 边界决策的“小于”/“小于等于”比较类型。

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

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