0

抱えている問題のトラブルシューティングを段階的に提供したいと考えています。http://www.cs.man.ac.uk/~gbrown/fstoolbox/にあるツールボックスを、Matlab R2012a 32 ビットで実行されている研究でさまざまな用途に使用したいと考えています。これは、C で設計されたメイン ツールボックス関数をコンパイルするために呼び出す必要がある 'CompileFeat.m' スクリプトを使用するときに、Matlab で表示されるエラーです。もちろん、解凍したフォルダーを現在の作業パスにコピーし、すべてのフォルダーを現在の作業パス。

>> 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 

そのため、Google を掘り下げた後、コンパイラがインストールされているかどうかを確認するように求める多くの提案を見てきました。以下のコードを参照してください。

>> 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 を使用しています。

コメントをお待ちしております。

乾杯、J

4

3 に答える 3

2

FSToolboxMex.cMATLAB パスにあると思われるかもしれませんが、そうではないようです。

  • どのディレクトリFSToolboxMex.cにありますか?
  • 現在のディレクトリ (を実行するディレクトリCompileFEAST) は何ですか?
  • MATLAB パス (pathコマンドを使用) は?
  • 何をwhich -all FSToolboxMex.c返しますか?
  • のコードはCompileFEASTどのように見えますか?
于 2013-10-18T16:04:37.533 に答える