Вопрос

Как я могу определить, использую ли я 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top