如何确定我是在32位还是64位版本的matlab上运行?
我有一些预编译的mex文件需要不同的路径,具体取决于32 / 64bit的matlab。
答案 0 :(得分: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.
答案 1 :(得分:5)
接受ScottieT812和dwj建议,我发布了自己的解决方案以获得一些积分。
函数computer
返回我正在运行的架构。这样:
switch computer
case 'GLNX86'
display('32-bit stuff')
case 'GLNXA64'
display('64-bit stuff')
otherwise
display('Not supported')
end
适合我
答案 2 :(得分:3)
这真的有用吗?您使用的是哪个版本的matlab?
据我所知,64位平台以“64”而不是86结束。来自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