Pregunta

¿Cómo puedo determinar si estoy ejecutando una versión de matlab de 32 bits o de 64 bits?

Tengo algunos archivos mex precompilados que necesitan diferentes rutas según 32 / 64bit matlab.

¿Fue útil?

Solución 2

Siguiendo las sugerencias de ScottieT812 y dwj, publico mi propia solución para ganar algunos puntos.

La función computer devuelve la arquitectura en la que estoy corriendo. entonces:

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

funciona para mí

Otros consejos

La cuestión de 32 contra 64 bits es realmente una pista falsa. Si entiendo correctamente, desea determinar qué conjunto de archivos MEX compilados son necesarios para que pueda establecer la ruta de manera adecuada. Para esto, puede usar la función 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.

¿Esto realmente funciona? ¿Qué versión de matlab estás usando?

Hasta donde yo sé, las plataformas de 64 bits terminan con '' 64 '' no 86. Desde el sitio matlab http://www.mathworks.com/access/helpdesk/ help / techdoc / ref / computer.html No creo que esa computadora regrese GLNXA86 sino GLNXA64 en su lugar.

Entonces, esta pregunta es específica de la versión GNU Linux de 32 bits o 64 bits.

Si está probando cualquier plataforma de 64 bits, probablemente necesite probar los últimos 2 caracteres para encontrar "64". es decir, algo como

if regexp(computer,'..,'match','64'),
   % setup 64bit options
else,
   % 32bit options
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top