函数定义的cvx返回错误不是脚本定义

时间:2017-01-18 06:23:33

标签: matlab cvx

我对cvx / matlab有一个非常奇怪的错误。

我想解决SDP问题以获得双变量。这是我的代码。

addpath(<cvx_directory>)
cvx_setup

cvx_begin
variable r(n);
variable R(n,n) symmetric;
dual variable alpha;
dual variable pi;
minimize(trace(A0*R))
pi: trace(A1*R) <=0;
alpha: r== diag(R);
[R r;r' 1] == semidefinite(n+1);
cvx_end

给出A0,A1。 当我在脚本表单中编写上述代码时,它不会返回任何错误。 但是我应该传递n的值(变量的大小),因此我在函数表单中编辑了上面的代码(在第一行添加函数[output] = sdp(n))然后它返回错误:

Undefined operator ':' for input arguments of type 'cvx'.
Error in  pi: trace(A1*R) <=0;

如果我将双变量pi移动到该行的右侧(如跟踪(A1 * R)&lt; = 0:pi)

然后它返回另一个错误:

Too many output arguments
Error in alpha: r== diag(R);

会发生什么?

//我在代码中添加了cvx_setup以确保安装了cvx

0 个答案:

没有答案