質問

matlabの32ビットバージョンと64ビットバージョンのどちらで実行しているかを判断するにはどうすればよいですか?

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

役に立ちましたか?

解決 2

ScottieT812とdwjの提案を参考に、独自のソリューションを投稿してポイントを獲得します。

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

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

私のために働く

他のヒント

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.

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

私が知る限り、64ビットプラットフォームの末尾は" 64"です。 86ではありません。MATLABサイトから http://www.mathworks.com/access/helpdesk/ help / techdoc / ref / computer.html コンピューターはGLNXA86ではなくGLNXA64を返すとは思いません。

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

任意の64ビットプラットフォームをテストしている場合は、おそらく「64」を見つけるために最後の2文字をテストする必要があります。すなわち

のようなもの
if regexp(computer,'..,'match','64'),
   % setup 64bit options
else,
   % 32bit options
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top