如何在Windows 8.1下的Matlab 2014b中安装SPAMS工具箱

时间:2015-02-20 11:08:52

标签: c++ matlab mex

我正在努力学习如何成功编译"稀疏建模软件" (SPAMS)在我的机器中使用Windows 8.1操作系统和MATLAB R2014b。

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

第1步。已安装" Microsoft Visual C ++ 2013 Professional"。

第2步。已安装" Microsoft Windows软件开发工具包(SDK)"。

第3步。下载" spams-matlab-v2.4-svn2014-02-18.tar"来自http://spams-devel.gforge.inria.fr/

第4步。使用7-zip在Windows中解压缩。我收到的只有一个错误,但所有其他数据都没有压缩。错误是这样的:

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

Step5:在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等接口代码有关的问题需要一段时间。你能帮助我吗?解决我遇到的问题并设法在我的机器上编译SPAMS工具箱?仅供参考,我有兴趣在此工具箱中使用mexLasso功能。

2 个答案:

答案 0 :(得分:4)

嗯。编译这个工具箱有点棘手。

以下是我在 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

您需要更改以下六个部分,

  1. -I./linalg /
  2. -I./decomp /
  3. -I./prox /
  4. -I./dictLearn /
  5. -I./dags /
  6. -I./image /
  7. 更换这些字符串后,只需运行compile.m,然后就可以了。

答案 1 :(得分:0)

选择2.5版本为Windows版本运行的SPAMS软件。在compile.m中将编译器设置为VS并执行代码。这会生成所需的文件。最后运行start_spams.m,然后创建源文件夹。现在您可以运行相应的代码。