新型冠状病毒肺炎疫情的发展,导致我只能在家办公啦,需要用到CVX所以就在家配置一下。顺便学习一下CVX的使用,在此之前我没有写过任何CVX的代码,只跑过别人写过的,只改改参数。这在家没有老师盯着,我可以稍微学习一下。

一、MATLAB+CVX的安装

1,MATLAB的安装

第一个选择,当然还是用学校的正版软件。

第二个选择,破解版,公众号“软件安装管家”提供的非常详细,暂且只记录这一个途径。

2,CVX的安装及遇到的问题

工具箱下载:http://cvxr.com/cvx/download/

安装步骤:http://web.cvxr.com/cvx/doc/install.html

非常简单,就在cvx的文件夹下执行cvx_setup即可

在网上随便搜的博客,很多都是垃圾复制的,之后还有几个复杂步骤,其实那些步骤cvx_setup都帮执行过了,不用那么复杂。所以以后借鉴别人的博客,一定要擦亮眼睛,多看两个,自己动动脑子。还是官方安装手册靠谱。

安装一切正常,运行官网提供的test, 然后。。。就遇到问题了, 报错:

无法将类型为 'struct' 的值用作索引

不能正常求解,我搜了,网上没有任何解决方法,但是有人提问。

我就自己探索一下,我的配置是

>> cvx_version

---------------------------------------------------------------------------
CVX: Software for Disciplined Convex Programming       (c)2014 CVX Research
Version 2.2, Build 1148 (62bfcca)                  Tue Jan 28 00:51:35 2020
---------------------------------------------------------------------------
Installation info:
    Path: D:\Software\MATLAB_R2019a\cvx
    MATLAB version: 9.4 (R2019a)
    OS: Windows 8 amd64 version 6.2
    Java version: 1.7.0_60

这个是执行cvx_version命令后的结果。我猜想可能是MATLAB版本问题,就又装了MATLAB R2016b在我家的台式机上,都一切正常。然后回到我的笔记本,把我笔记本上的2019a卸载重装成了2016b,然后。。。又报同样的错误???笔记本不支持CVX?不应该呀,我就重启了一下。重启之后正常了。但是还是没研究出来问题究竟在哪,不过已经正常了我也懒得折腾了,MATLAB安装太麻烦了。