Pergunta

Como posso determinar se estou executando em um 32 bits ou uma versão de 64 bits do matlab?

Eu tenho alguns pré-compilados mex-arquivos que precisam diferente o caminho de acordo com 32 / 64bit Matlab.

Foi útil?

Solução 2

Tomando-se em ScottieT812 e DWJ sugestões, eu postar minha própria solução para ganhar alguns pontos.

A função computer retorna a arquitetura estou executando. assim:

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

funciona para mim

Outras dicas

A questão de 32 vs 64 bits é realmente um arenque vermelho. Se bem entendi, você quer determinar qual conjunto de arquivos MEX compilados são necessários para que você possa definir o caminho de forma adequada. Para isso, você pode usar a função 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.

Será que isso realmente funciona? Qual versão do Matlab você está usando?

Tanto quanto eu estou ciente as plataformas de 64 bits terminar com "64" não 86. A partir do site Matlab http://www.mathworks.com/access/helpdesk/ ajuda / techdoc / ref / computer.html Eu não acho que esse computador nunca vai voltar GLNXA86 mas GLNXA64 vez.

Portanto, esta questão é específico para GNU Linux de 32 bits ou 64 bits versão.

Se você estiver testando para qualquer plataforma de 64 bits, então você provavelmente precisará testar os últimos 2 caracteres para encontrar "64" ou seja, algo como

if regexp(computer,'..$','match','64'),
   % setup 64bit options
else,
   % 32bit options
end
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top