Matlab 找到CVX中最小值的位置

Matlab 找到CVX中最小值的位置,matlab,optimization,cvx,Matlab,Optimization,Cvx,我正在编写一个需要最小值位置的代码。我试图在CVX中以以下形式对这一部分进行编码 cvx_begin min_val=val(1); position=1 for i=1:r if val(i) <= min_val min_val=val(i) position=i end cvx_end cvx\u开始 最小值=val(1); 位置=1 对于i=1:r 如果val(i),在MATLAB中获得最小值位置的标准方法是使用[min_val,position]=mi

我正在编写一个需要最小值位置的代码。我试图在CVX中以以下形式对这一部分进行编码

cvx_begin

min_val=val(1);

position=1

for i=1:r 

if val(i) <= min_val

  min_val=val(i)

  position=i

end

cvx_end
cvx\u开始
最小值=val(1);
位置=1
对于i=1:r

如果val(i),在MATLAB中获得最小值位置的标准方法是使用
[min_val,position]=min(val)。感谢您的帮助。但是,这对CVX不起作用(我不是matlab用户,但是:)这看起来一点也不像有效的CVX代码。我甚至无法想象使用像if&for这样的控制表达式会像那样工作!你考虑过他们的证件吗?我想说,如果不使用整数(->混合整数规划),您的基本问题(获取最小值的位置)实际上是不可行的。如果你只是对价值感兴趣,而不是对职位感兴趣,cvx当然支持。非常感谢。实际上,就for循环而言,即使在这里所示的约束条件下,CVX也能完美地支持它[link]()。