gpt4 book ai didi

arrays - 计算向量中小于另一个向量中每个元素的值

转载 作者:太空宇宙 更新时间:2023-11-03 19:50:16 26 4
gpt4 key购买 nike

我有两个向量 rd我想知道次数 r<d(i)其中 i=1:length(d) .

r=rand(1,1E7);
d=linspace(0,1,10);

到目前为止,我得到了以下内容,但它不是很优雅:

for i=1:length(d)
sum(r<d(i))
end

这是 R 中的一个示例,但我不太确定这是否适用于 matlab: Finding number of elements in one vector that are less than an element in another vector

最佳答案

您可以使用 bsxfun 的单例扩展: 比循环更快、更优雅,但也更占用内存:

result = sum(bsxfun(@lt, r(:), d(:).'), 1);

由于 implicit singleton expansion,在最近的 Matlab 版本中 bsxfun 可以被删除:

result = sum(r(:)<d(:).', 1);

另一种方法是使用 histcounts使用 'cumcount' 选项的函数:

result = histcounts(r(:), [-inf; d(:); inf], 'Normalization', 'cumcount');
result = result(1:end-1);

关于arrays - 计算向量中小于另一个向量中每个元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53341823/

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