cvx由于某种原因,请不要开箱即用。
我使用Windows x64,cvx x64和Matlab x64 R2012a
但是,即使我只运行简单的示例(\ cvx \ examples \ quickstart.m),也会给我一个错误:
>> quickstart
has_quadprog = exist( 'quadprog' );
has_quadprog = has_quadprog == 2 | has_quadprog == 3;
has_linprog = exist( 'linprog' );
has_linprog = has_linprog == 2 | has_linprog == 3;
rnstate = randn( 'state' ); randn( 'state', 1 );
s_quiet = cvx_quiet(true);
s_pause = cvx_pause(false);
cvx_clear; echo on
prob = evalin( 'caller', 'cvx_problem', '[]' );
if isa( prob, 'cvxprob' ),
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SECTION 2.1: LEAST SQUARES %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Input data
m = 16; n = 8;
A = randn(m,n);
b = randn(m,1);
% Matlab version
x_ls = A \ b;
% cvx version
cvx_begin
Attempt to reference field of non-structure array.
Error in cvxprob (line 48)
selected = cvx___.solvers.selected;
Error in cvx_begin (line 41)
assignin( 'caller', 'cvx_problem', cvxprob( varargin{:} ) );
Error in quickstart (line 25)
cvx_begin
最佳答案
安装相对简单:
下载CVX(我得到的cvx-rd.zip
发行版仅包含免费的求解器,并为所有受支持的平台提供了预编译的MEX二进制文件)。
将ZIP文件解压缩到某个地方,例如C:\cvx
在MATLAB中导航至该目录,然后运行cvx_setup
:
>> cd('C:\cvx')
>> cvx_setup
---------------------------------------------------------------------------
CVX: Software for Disciplined Convex Programming (c)2014 CVX Research
Version 2.1, Build 1088 (e790d80) Sat Sep 20 22:03:02 2014
---------------------------------------------------------------------------
Installation info:
Path: C:\cvx
MATLAB version: 8.3 (R2014a)
OS: Windows 8 amd64 version 6.2
Java version: 1.7.0_11
Verfying CVX directory contents:
No missing files.
Preferences: none found; defaults loaded.
---------------------------------------------------------------------------
Setting CVX paths...done.
Saving updated path...done.
Searching for solvers...3 shims found.
2 solvers initialized (* = default):
* SDPT3 4.0 {cvx}\sdpt3
SeDuMi 1.34 {cvx}\sedumi
1 solver skipped:
GLPK
Could not find a GLPK installation.
Saving updated preferences...done.
Testing with a simple model...done!
---------------------------------------------------------------------------
To change the default solver, type "cvx_solver <solver_name>".
To save this change for future sessions, type "cvx_save_prefs".
Please consult the users' guide for more information.
---------------------------------------------------------------------------
现在,您可以运行以下示例之一:
>> cd('C:\cvx\examples')
>> quickstart
如果要连接到外部求解器(Gurobi和MOSEK),请阅读docs中的相应部分。这需要CVX Professional许可证。
关于matlab - Matlab cvx错误与cvx_begin,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26191167/