我想为我遇到的问题提供一步一步的故障排除。我想在http://www.cs.man.ac.uk/~gbrown/fstoolbox/找到的工具箱用于我在Matlab R2012a 32位中进行的研究中的各种用途。这是我在Matlab中看到的错误,当我使用'CompileFeat.m'脚本时,必须调用该脚本来编译C中设计的主要工具箱函数。当然,我将解压缩的文件夹复制到我当前的工作路径中,并将所有文件夹添加到目前的工作路径。
>> CompileFEAST
C:\PROGRA~2\MATLAB\R2012A\BIN\MEX.PL: Error: 'FSToolboxMex.c' not found.
Error using mex (line 206)
Unable to complete successfully.
Error in CompileFEAST (line 3)
mex -I../MIToolbox FSToolboxMex.c BetaGamma.c CMIM.c CondMI.c DISR.c ICAP.c JMI.c
mRMR_D.c ../MIToolbox/MutualInformation.c ../MIToolbox/Entropy.c
../MIToolbox/CalculateProbability.c ../MIToolbox/Arr
因此,经过对谷歌的一些挖掘,我看到了许多建议,要求我检查是否安装了编译器。请参阅以下代码:
>> mex -setup
Welcome to mex -setup. This utility will help you set up
a default compiler. For a list of supported compilers, see
http://www.mathworks.com/support/compilers/R2012a/win32.html
Please choose your compiler for building MEX-files:
Would you like mex to locate installed compilers [y]/n? y
Select a compiler:
[1] Lcc-win32 C 2.4.1 in C:\PROGRA~2\MATLAB\R2012a\sys\lcc
[2] Microsoft Software Development Kit (SDK) 7.1 in C:\Program Files (x86)\Microsoft Visual Studio 10.0
[0] None
Compiler: 2
Please verify your choices:
Compiler: Microsoft Software Development Kit (SDK) 7.1
Location: C:\Program Files (x86)\Microsoft Visual Studio 10.0
Are these correct [y]/n? y
***************************************************************************
Warning: MEX-files generated using Microsoft Windows Software Development
Kit (SDK) require that Microsoft Visual Studio 2010 run-time
libraries be available on the computer they are run on.
If you plan to redistribute your MEX-files to other MATLAB
users, be sure that they have the run-time libraries.
***************************************************************************
Trying to update options file: C:\Users\JQ\AppData\Roaming\MathWorks\MATLAB\R2012a\mexopts.bat
From template: C:\PROGRA~2\MATLAB\R2012a\bin\win32\mexopts\mssdk71opts.bat
Done . . .
**************************************************************************
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/techdoc/matlab_external/bsflnue-1.html
Building with the -largeArrayDims option enables the new API.
完成这一步后,我神奇地希望我下次打电话给'CompileFeast.m'会成功。相反,我收到:
>> CompileFEAST
C:\PROGRA~2\MATLAB\R2012A\BIN\MEX.PL: Error: 'FSToolboxMex.c' not found.
Error using mex (line 206)
Unable to complete successfully.
Error in CompileFEAST (line 3)
mex -I../MIToolbox FSToolboxMex.c BetaGamma.c CMIM.c CondMI.c DISR.c ICAP.c JMI.c
mRMR_D.c ../MIToolbox/MutualInformation.c ../MIToolbox/Entropy.c
../MIToolbox/CalculateProbability.c ../MIToolbox/Arr
同样的问题!在查看问题的进一步挫折之后,建议使用 dir 函数来查看文件是否在目录中(它不是),见下文:
>> dir 'CompileFEAST.m'
CompileFEAST.m not found.
为了确保我可以在我的Matlab路径中看到其他文件,我检查另一个函数以查看它是否在目录中:
>> dir 'hurst.m'
hurst.m
正如您所见,该文件位于目录中。我只是提供了与上面的工具箱添加到我的Matlab工作路径相同的过程,我所做的就是将文件复制到工作路径中,并将文件或子文件夹添加到路径中。
有没有人注意到我哪里错了?我不太倾向于解决这些问题,我或多或少地使用Matlab作为移动模型构建平台来理解算法。
我期待着任何评论。
干杯, Ĵ
答案 0 :(得分:2)
即使您可能认为FSToolboxMex.c
在您的MATLAB路径中,但它似乎并非如此。
FSToolboxMex.c
在哪个目录中? CompileFEAST
的目录?)path
命令)? which -all FSToolboxMex.c
返回什么?CompileFEAST
的代码是什么样的?答案 1 :(得分:2)
我认为你当前的目录(pwd)是错误的。
尝试:
cd('E:\School\hidethis\hidethis\MATLAB work\FEAST\FEAST\FSToolbox')
CompileFEAST
答案 2 :(得分:0)
使用'pwd'命令向我显示我与CompileFEAST.m
的路径不同。双击并重新运行脚本非常简单。这对我来说可能是一件令人尴尬的事,但至少我已经知道了我的错误!谢谢大家的快速回复,非常感谢!
最佳, Ĵ