首先,按部就班安装‘Rmosek’包,然后导入并没有报错
install.package('Rmosek')
library(Rmosek)
然而,在调用时,
result <- mosek(problem_W, opts)
却出现了错误:
...Please call mosek_attachbuilder(what_mosek_bindir) to complete the installation...
于是,百般折腾也没有结果。
我找了这篇博客:
1.官网下载mosek
选择正确的系统,随便安装在一个地方,我安装在了默认路径
在C:\Program Files\Mosek\9.3\doc\rmosek.pdf中,有具体的安装教程:
source('C:/Program Files/Mosek/9.3/tools/platform/win64x86/rmosek/builder.R')
attachbuilder(what_mosek_bindir='C:/Program Files/Mosek/9.3/tools/platform/win64x86/bin', pos=2L, name='Rmosek:builder', warn.conflicts=TRUE)
install.rmosek()
然后导包,运行:
library(Rmosek)
result <- mosek(problem_W, opts)
报错:
原因是没有license
2.申请license
使用学校的邮箱区官网申请license,申请好后,邮箱会收到一个叫mosek.lic的license附件
在C盘用户下新建mosek文件夹,并将mosek.lic放到该文件夹下。
因为系统默认去这个文件夹下找license
然后重新安装包:
install.packages("Rmosek", type = "source", INSTALL_opts = "–no-multiarch", repos = "http://download.mosek.com/R/8")
导包,运行:
library(Rmosek)
result <- mosek(problem_W, opts)
大功告成!