Matlab cvx ошибка с cvx_begin
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
1 ответ
Решение
Установка относительно проста:
Скачать 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), прочитайте соответствующие разделы в документации. Для этого требуется лицензия CVX Professional.