我正在尝试学习如何在使用Windows 8.1 OS和MATLAB R2014b的计算机中成功编译“稀疏建模软件”(SPAMS)。

我已采取的步骤如下(某些部分可能是不必要的或丢失的)

步骤1. 安装了“Microsoft Visual C++ 2013 Professional”。

步骤2。安装了“Microsoft Windows软件开发工具包(SDK)”。

步骤3。http://spams-devel.gforge.inria.fr/下载“spams-matlab-v2.4-svn2014-02-18.tar”

步骤4. 在Windows中使用7-zip解压缩。我仅收到1个错误,但其他所有数据均未压缩。错误是这样的:

ERROR: Can not set reparse data: C:\Users\Yashar\Desktop\spams-matlab\cpp_library\spams.h

步骤5:在MATLAB中,我设置了编译器:
>> mex -setup C++

我收到的讯息:
MEX configured to use 'Microsoft Visual C++ 2013 Professional' for C++  language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
 variables with more than 2^32-1 elements. In the near future
 you will be required to update your code to utilize the
 new API. You can find more information about this at:
 http://www.mathworks.com/help/matlab/matlab_external/upgrading-   mex-files-to-use-64-bit-api.html.

步骤6. (根据建议)在SPAMS中打开compile.m并运行它。我得到的错误看起来像这样:
compilation of: -I./linalg/ -I./decomp/ -I./prox/ -I./dictLearn/ dictLearn/mex/mexTrainDL.cpp
Error using mex
C:\Users\Yashar\Desktop\spams-matlab\Files not found; check that you are in the
correct current folder, and check the spelling of
'C:\Users\Yashar\Desktop\spams-matlab\Files'.
Error in compile (line 391)
mex(args{:});

问题:我正在做的事情看起来很标准,但是我知道学习如何处理与MATLAB等接口(interface)代码有关的问题还需要一段时间。请您帮我解决我遇到的问题和管理问题在我的机器上编译SPAMS工具箱?仅供引用,我对在此工具箱中使用mexLasso函数感兴趣。

最佳答案

嗯编译此工具箱有些棘手。

这是我在 Windows 7 + MATLAB 2013a中的操作方法。
希望对你有效。

(我没有解压缩的问题)

首先,您要确保'mex'正常工作,我编译了一些较小的程序包,并且它们总体上正常工作。

二,换线

compiler='gcc';


compiler='mex';

第三,您会发现很多线条看起来像
-I./linalg/ -I./decomp/ -I./prox/ -I./spams/dictLearn/ dictLearn/mex/mexArchetypalAnalysis.cpp

这里的“I./lib_name/”是Linux样式的路径,您需要将其更改为Windows可以理解的名称。

这是一个例子:
-I./linalg/       --->       -IC:\Users\XXX\Downloads\SPAMS\linalg

您总共需要更改以下六个部分,
  • -I./linalg/
  • -I./decomp/
  • -I./prox/
  • -I./dictLearn/
  • -I./dags/
  • -I./image/

  • 替换完这些字符串后,只需运行compile.m,它就可以工作。

    09-11 03:36