2008-10-13 13 views
7

Jak ustalić, czy korzystam z 32-bitowej lub 64-bitowej wersji programu Matlab?Działa na macierzy matlab 32- lub 64-bitowej?

Mam wstępnie skompilowane pliki mex, które wymagają różnych ścieżek w zależności od matlab 32/64-bit.

+0

SO podpowiedź: post to jako odpowiedź na swoje pytanie i można zarobić odznaki. –

+0

Wskazówka, część 2: Przyjmij odpowiedź, aby inni wiedzieli, że ma solidne rozwiązanie. – dwj

Odpowiedz

5

objęciem na ScottieT812 i DWJ sugestie, ja pisać własne rozwiązanie, aby zarobić trochę punktów.

Funkcja computer zwraca architekturę, z której korzystam. tak:

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

działa na mnie

3

Czy to naprawdę działa? Którą wersję programu Matlab używasz?

O ile jestem świadomy platformy 64-bitowe skończyć z „64” nie 86. Z witryny Matlab http://www.mathworks.com/access/helpdesk/help/techdoc/ref/computer.html Nie sądzę, że komputer zostanie kiedykolwiek powrócić GLNXA86 ale GLNXA64 zamiast.

To pytanie dotyczy wersji GNU Linux 32bit lub 64bit.

Jeśli testujesz na dowolnej platformie 64-bitowej, to prawdopodobnie trzeba przetestować ostatnie 2 znaki znaleźć „64”, czyli coś jak

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

+1 dla odpowiedzi niezależnej od systemu operacyjnego (to znaczy działa dla windoze) –

6

Kwestia 32 vs 64 bity jest naprawdę czerwony śledź . Jeśli dobrze rozumiem, chcesz określić, który zbiór skompilowanych plików MEX jest potrzebny, abyś mógł właściwie ustawić ścieżkę. W tym celu można użyć funkcji 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. 
Powiązane problemy