gpt4 book ai didi

matlab - 如何在不使用 Matlab 循环的情况下有效地编写它?

转载 作者:行者123 更新时间:2023-12-04 05:52:24 24 4
gpt4 key购买 nike

dist=[1:100]; % distance% conc. is concentration of size 1x100

conc=1  1   1   1   1   1   1   1   1   1   1   1   1   1   1   0.990000000000000   0.990000000000000   0.990000000000000   0.990000000000000   0.990000000000000   0.990000000000000   0.990000000000000   0.990000000000000   0.990000000000000   0.990000000000000   0.990000000000000   0.980000000000000   0.970000000000000   0.950000000000000   0.920000000000000   0.890000000000000   0.850000000000000   0.820000000000000   0.790000000000000   0.750000000000000   0.710000000000000   0.680000000000000   0.640000000000000   0.600000000000000   0.560000000000000   0.520000000000000   0.480000000000000   0.440000000000000   0.400000000000000   0.360000000000000   0.310000000000000   0.270000000000000   0.230000000000000   0.180000000000000   0.140000000000000   0.100000000000000   0.0700000000000000  0.0400000000000000  0.0200000000000000  0.0100000000000000  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

我想在 conc 中找到与 0.16(或可能的最接近值)和 0.84(或可能的最接近值)的浓度值对应的索引.我将使用该索引来查找 dist在那些索引处。需要注意的一件事是 conc值在大小为 100 的向量中以非线性关系从 1 减少到 0。我知道我们可以使用 find() ,但我不确定如何将其用于我想做的事情。

如果可能的话,我希望能够在不使用循环的情况下有效地做到这一点。这是因为我有很多用于集中注意力的向量,并且我的代码中已经有很多循环。谢谢。

最佳答案

一个简单的解决方案是

[x, i] = min(abs(conc - 0.16));

之后 i将持有指数。这将比较 conc 的每个元素向量,这有点浪费,因为数据是有序的,你可以进行二分搜索,但在 matlab 级别实现的二分搜索对于百元素向量可能会更慢。

关于matlab - 如何在不使用 Matlab 循环的情况下有效地编写它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9914362/

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