2011-09-22 128 views
3

如何在MATLAB中確定操作系統是x64還是x86?確定是否在MATLAB中運行x64或x86操作系統

注意:我找到computer函數,但有人提到,如果x32 MATLAB在x64 OS上運行,那麼它將返回x32(而不是x64),所以此函數不會執行此操作。

+1

我打算建議'getenv('PROCESSOR_ARCHITECTURE')',但這似乎在32位MATLAB中返回'x86'。 – Nzbuu

+1

你爲什麼需要這個?如果你使用的是matlab擴展,它必須被編譯爲matlab版本(x32或x64)...... –

+0

@FooBah:我需要明確地知道這一點,所以我可以在dos(thecorrectfile.bat)的基礎上, (x32/x64)我正在運行 – niels

回答

3

從您的評論,我假設你正在運行Windows。

查看環境變量PROCESSOR_ARCHITECTURE和PROCESSOR_ARCHITEW6432。他們的存在和價值的組合將告訴你你正在運行什麼。

在x64的Windows x64的Matlab的:
PROCESSOR_ARCHITECTURE = AMD64

86 Matlab的基於x86的Windows:
PROCESSOR_ARCHITECTURE = 86

86 Matlab的在x64的Windows:
PROCESSOR_ARCHITECTURE = 86
PROCESSOR_ARCHITEW6432 = AMD64

然後,您可以使用環境變量PROGRAMFILES,PROGRAMFILES(X86)和PROGRAMW6432來查找正確的「程序文件」路徑來啓動您的外部應用程序,如果它安裝在傳統位置。

有關Windows x64和x86環境如何交互的更多信息,請參見Google「WoW64」。

+0

謝謝,您提供的信息似乎正確基於http://msdn.microsoft.com/zh-cn/我們/庫/ aa384274%28V = vs.85%29.aspx。我已經檢查了適用於我的第一個案例(在x64 win上的x64 matlab)。如果任何人也可以檢查其他兩種情況,那麼問題就解決了 – niels

+1

+1我可以確認第二種情況(WinXP/MATLAB 32位都有) – Amro

+0

在朋友的計算機上確認了第三種情況。問題解決了!! – niels

1

在Windows上,您可以嘗試解析dos('systeminfo')的輸出,但它不是很快。在Linux上,您可以嘗試解析unix('uname -a')的輸出。

+0

謝謝,這可能是一個解決方案。我正在運行x64 Win 7,並在「系統類型」下返回「基於x64的PC」。如果我在x64硬件上運行x32 Win,會不會是「基於x32的PC」? – niels

+0

在MATLAB'winqueryreg('HKEY_LOCAL_MACHINE','HARDWARE \ DESCRIPTION \ System \ CentralProcessor \ 0','Identifier')'試試這個。我得到了「Intel64 Family 6 Model 23 Stepping 10」作爲迴應,顯然我運行的是x64操作系統。那些可以運行命令並編寫反饋(您正在運行的操作系統,如果您的硬件支持x64體系結構) – niels

相關問題