我的電腦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.