matlab の 32 ビット版と 64 ビット版のどちらで実行しているかを確認するにはどうすればよいですか?
32/64 ビットの matlab に応じて異なるパスが必要なコンパイル済みの mex ファイルがいくつかあります。
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.
ScottieT812 と dwj の提案を取り上げて、ポイントを獲得するために独自のソリューションを投稿します。
この関数computer
は、実行中のアーキテクチャを返します。それで:
switch computer
case 'GLNX86'
display('32-bit stuff')
case 'GLNXA64'
display('64-bit stuff')
otherwise
display('Not supported')
end
私のために働く
これは本当に機能しますか?どのバージョンの 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