我的电脑macOS Catalina 版本 10.15.4 Matlab R2019b
- 首先我下载最新版本mosek到
/Users/name
目录中(name是你电脑的名字); - 在命令行输入:
conda install -c mosek mosek
再在命令行输入:
python /Users/name/mosek/8/tools/platform/osx64x86/bin/install.py
以上安装标准可在官方安装文档中找到:https://docs.mosek.com/8.1/install/installation.html#downloading-and-setting-up
-
获取mosek许可证:在官网
https://www.mosek.com
中找到academic license按钮,填写学校邮箱,之后会发送一个mosek.lic
文件到你的学校邮箱,保存到/Users/name/mosek
目录中(因为这是Matlab获取许可证默认搜索路径); -
这就安装好了,用的时候需要
addpath('/Users/name/mosek/9.2/toolbox/r2015a')
下面运行一个代码看看:
%mosek
clear;close all;clc;
H = [1 -1; -1 2];
f = [-2; -6];
A = [1 1; -1 2; 2 1];
b = [2; 2; 3];
lb = [0; 0];
mosek_path = '/Users/name/mosek/9.2/toolbox/r2015a';
addpath(mosek_path)
which('linprog')
tic
try
[x,fval,exitflag,output,lambda] = quadprog(H,f,A,b,[],[],lb);
catch ME
disp( 'Error with mosek toolbox, use built-in quadprog instead. ')
rmpath(mosek_path);
opts = optimoptions('quadprog','Display','off');
[x,fval,exitflag,output,lambda] = quadprog(H,f,A,b,[],[],lb,[],[],opts);
addpath(mosek_path);
end
toc
成功运行,输出:
/Users/name/mosek/9.2/toolbox/r2015a/linprog.m
历时 0.039304 秒。
- 在Matlab命令行窗口输入
mosekdiag
看看输出啥,下面是我的输出:
Matlab version : 9.7.0.1190202 (R2019b)
Architecture : MACI64
mosekopt path : /Users/name/mosek/9.2/toolbox/r2015a/mosekopt.mexmaci64
MOSEK version : 9.2.10
Test linear solve: Success
mosekopt works OK. You can use MOSEK in MATLAB.