2008-10-13 38 views
7

Làm thế nào tôi có thể xác định xem mình đang chạy trên phiên bản 32 bit hoặc 64bit của MATLAB?Chạy trên màn hình nền 32 hoặc 64 bit?

Tôi có một số tệp mex được biên dịch trước cần đường dẫn khác nhau tùy thuộc vào nền tảng 32/64bit.

+0

SO gợi ý: Đăng này như một câu trả lời cho câu hỏi của riêng bạn và bạn có thể kiếm được một huy hiệu. –

+0

SO gợi ý, phần 2: Và chấp nhận câu trả lời để người khác biết nó có một giải pháp vững chắc. – dwj

Trả lời

5

Chiếm trên ScottieT812 và dwj gợi ý, tôi gửi giải pháp của riêng mình để kiếm được một số điểm.

Chức năng computer trả về kiến ​​trúc mà tôi đang chạy. vậy:

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

công trình đối với tôi

3

Điều này thực sự có hiệu quả không? Bạn đang sử dụng phiên bản MATLAB nào?

Theo tôi biết nền tảng 64 bit kết thúc bằng "64" không phải 86. Từ trang web MATLAB http://www.mathworks.com/access/helpdesk/help/techdoc/ref/computer.html Tôi không nghĩ rằng máy tính đó sẽ trả về GLNXA86 nhưng thay vào đó là GLNXA64.

Vì vậy, câu hỏi này dành riêng cho phiên bản GNU 32bit hoặc 64bit.

Nếu bạn đang thử nghiệm cho bất kỳ nền tảng 64bit thì có thể bạn cần phải kiểm tra 2 ký tự cuối cùng để tìm "64" tức là một cái gì đó giống như

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

+1 cho câu trả lời độc lập của hệ điều hành (tức là tính năng này hoạt động để có gió) –

6

Câu hỏi 32 vs 64 bit thực sự là một cá trích đỏ . Nếu tôi hiểu chính xác, bạn muốn xác định tập hợp các tệp MEX đã biên dịch nào cần thiết để bạn có thể đặt đường dẫn phù hợp. Đối với điều này, bạn có thể sử dụng chức năng 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. 
Các vấn đề liên quan