2008-10-13 17 views
7

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

Tengo algunos archivos mex precompilados que necesitan diferentes rutas en función del matlab de 32/64 bits.

+0

SO pista: Mensaje esto como una respuesta a su propia pregunta y es posible ganar una insignia. –

+0

SO sugerencia, parte 2: Y acepte la respuesta para que otros sepan que tiene una solución sólida. – dwj

Respuesta

5

Retomando el ScottieT812 y dwj sugerencias, he puesto mi propia solución para ganar algunos puntos.

La función computer devuelve la arquitectura en la que me estoy ejecutando. por lo que:

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

funciona para mí

3

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

Por lo que yo soy consciente de 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 ese equipo será nunca volver GLNXA86 pero GLNXA64 lugar.

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

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

if regexp(computer,'..$','match','64'), 
    % setup 64bit options 
else, 
    % 32bit options 
end 
+1

+1 para la respuesta independiente del sistema operativo (es decir, esto funciona para Windows) –

6

La cuestión de 32 vs 64 bits es realmente una cortina de humo . Si entiendo correctamente, quiere determinar qué conjunto de archivos MEX compilados son necesarios para que pueda establecer la ruta de forma adecuada. Para ello, puede utilizar 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. 
Cuestiones relacionadas