7

matlab の 32 ビット版と 64 ビット版のどちらで実行しているかを確認するにはどうすればよいですか?

32/64 ビットの matlab に応じて異なるパスが必要なコンパイル済みの mex ファイルがいくつかあります。

4

3 に答える 3

6

32ビットと64ビットの問題は、実際には赤いニシンです。私が正しく理解していれば、パスを適切に設定できるように、コンパイルされたMEXファイルのどのセットが必要かを判断する必要があります。このために、あなたは関数を使うことができますmexext

>> help mexext
 MEXEXT MEX filename extension for this platform, or all platforms. 
    EXT = MEXEXT returns the MEX-file name extension for the current
    platform. 

    ALLEXT = MEXEXT('all') returns a struct with fields 'arch' and 'ext' 
    describing MEX-file name extensions for all platforms.

    There is a script named mexext.bat on Windows and mexext.sh on UNIX
    that is intended to be used outside MATLAB in makefiles or scripts. Use
    that script instead of explicitly specifying the MEX-file extension in
    a makefile or script. The script is located in $MATLAB\bin.

    See also MEX, MEXDEBUG.
于 2008-10-16T13:36:08.193 に答える
5

ScottieT812 と dwj の提案を取り上げて、ポイントを獲得するために独自のソリューションを投稿します。

この関数computerは、実行中のアーキテクチャを返します。それで:

switch computer
    case 'GLNX86'
        display('32-bit stuff')
    case 'GLNXA64'
        display('64-bit stuff')
    otherwise
        display('Not supported')
end

私のために働く

于 2008-12-18T11:53:10.120 に答える
3

これは本当に機能しますか?どのバージョンの matlab を使用していますか?

私の知る限り、64 ビット プラットフォームは 86 ではなく「64」で終わります。matlab サイト http://www.mathworks.com/access/helpdesk/help/techdoc/ref/computer.htmlからコンピュータは GLNXA86 を返しますが、代わりに GLNXA64 を返すと思います。

したがって、この質問は GNU Linux 32 ビットまたは 64 ビット バージョンに固有のものです。

64ビットプラットフォームをテストしている場合は、最後の2文字をテストして「64」を見つける必要があります。つまり、次のようなものです

if regexp(computer,'..$','match','64'),
   % setup 64bit options
else,
   % 32bit options
end
于 2008-10-15T23:44:31.523 に答える