Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 凸随机值的极小化_Matlab_Minimize - Fatal编程技术网

Matlab 凸随机值的极小化

Matlab 凸随机值的极小化,matlab,minimize,Matlab,Minimize,我有一个等距值变量(假设值=0:1e-3:1)。我想从values中获取最接近均匀随机值的值及其对应索引(假设x=rand) 我可以做[value,vIdx]=min(abs(values-x)),这是我能做的最简单的最小化不幸的是,min函数不会利用数据中的一个属性,即凸属性。我不需要搜索所有索引,因为只要找到一个不小于上一个索引的索引,我就找到了全局最小值。尽管如此,我不想用matlab min函数代替一个循环,这个循环的速度会慢一些,这取决于它与我将要开始的值之间的距离。有许多方法可以使用

我有一个等距值变量(假设
值=0:1e-3:1
)。我想从
values
中获取最接近均匀随机值的值及其对应索引(假设
x=rand

我可以做
[value,vIdx]=min(abs(values-x))
,这是我能做的最简单的最小化不幸的是,
min
函数不会利用数据中的一个属性,即凸属性。我不需要搜索所有索引,因为只要找到一个不小于上一个索引的索引,我就找到了全局最小值。尽管如此,我不想用matlab min函数代替一个循环,这个循环的速度会慢一些,这取决于它与我将要开始的值之间的距离。有许多方法可以使用,如黄金分割法,但我不确定使用matlab fmincon是否比
min
方法更快

是否有人对如何比使用所述的
min
方法更快地获得所需值有任何提示/想法?当我有时间时,我会检查时间性能,但是如果有人事先知道一个好的答案,请让我知道


可能的应用程序:捕捉到最近的图形数据

由于点的距离相等,因此可以使用值
x
查找索引:

vIdx = 1+round(x*(numel(values)-1));

其思想是将间隔
[0,1]
划分为
numel(值)-1
大小相等的间隔。现在,通过将
x
乘以该数字,可以将间隔映射到
[0,numel(值)-1]
,其中点映射到整数值。现在使用
round
可以得到最接近的一个,通过添加1可以得到MATLAB所需的基于一的索引。

如果值边界不是
[0,1]
vIdx=1+round((x-values(1))*(numel(values)-1/(values(end)-values(1))
。谢谢你的回答,我想我已经习惯了迭代方法(