Работает на 32 или 64-битном Matlab?
Вопрос
Как я могу определить, использую ли я 32-битную или 64-битную версию Matlab?
У меня есть несколько предварительно скомпилированных mex-файлов, которые требуют различного пути в зависимости от 32/64-битного Matlab.
Решение 2
Принимая предложения ScottieT812 и dwj, я публикую свое собственное решение, чтобы заработать несколько очков.
Функция computer
возвращает архитектуру, на которой я работаю. так:
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.
Так что этот вопрос относится только к 32-битной или 64-битной версии GNU Linux.
Если вы тестируете какую-либо 64-битную платформу, вам, вероятно, нужно протестировать последние 2 символа, чтобы найти " 64 " то есть что-то вроде
if regexp(computer,'..,'match','64'),
% setup 64bit options
else,
% 32bit options
end