2008-10-13 11 views
7

Wie kann ich feststellen, ob ich auf einer 32-Bit- oder 64-Bit-Version von Matlab laufe?Laufen auf 32 oder 64 Bit Matlab?

Ich habe einige vorkompilierte Mex-Dateien, die unterschiedliche Pfad abhängig von 32/64bit Matlab benötigen.

+0

SO Hinweis: Geben Sie dies als eine Antwort auf Ihre eigene Frage und Sie könnten ein Abzeichen verdienen. –

+0

SO Hinweis, Teil 2: Und akzeptieren Sie die Antwort, damit andere wissen, dass es eine solide Lösung hat. – dwj

Antwort

5

auf ScottieT812 Aufgreifen und dwj Vorschläge, schreibe ich meine eigene Lösung einige Punkte zu sammeln.

Die Funktion computer gibt die Architektur zurück, auf der ich arbeite. so:

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

Werke für mich

3

Funktioniert das wirklich? Welche Version von Matlab benutzt du?

Soweit ich bin mir bewusst, die 64-Bit-Plattformen mit „64“ nicht 86. Stelle http://www.mathworks.com/access/helpdesk/help/techdoc/ref/computer.html Vom Matlab beende ich glaube nicht, dass Computer jemals zurückkehren GLNXA86 aber GLNXA64 statt.

Also diese Frage ist spezifisch für GNU Linux 32bit oder 64bit Version.

Wenn Sie für jede 64-Bit-Plattform zu testen sind, dann müssen Sie wahrscheinlich die letzten zwei Zeichen testen „64“, also so etwas wie

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

+1 für Betriebssystem unabhängige Antwort (d. H. Das funktioniert für Windows) –

6

Die Frage von 32 im Vergleich zu 64 Bits zu finden, ist wirklich ein roter Hering . Wenn ich es richtig verstehe, wollen Sie herausfinden, welche Menge kompilierter MEX-Dateien benötigt werden, damit Sie den Pfad entsprechend einstellen können. Dazu können Sie die Funktion mexext verwenden:

>> 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. 
Verwandte Themen