确定在MATLAB中运行的是x64还是x86操作系统

3

如何在MATLAB中确定操作系统是x64还是x86?

注意:我已经找到了computer函数,但它提到如果在x64操作系统上运行x32 MATLAB,则返回x32(而不是x64),因此这个函数不能使用。


1
我本来想建议使用 getenv('PROCESSOR_ARCHITECTURE'),但在32位的MATLAB中似乎会返回“x86”。 - Nzbuu
1
为什么需要这个?如果您正在使用Matlab扩展,它必须编译为Matlab版本(x32或x64)... - Foo Bah
@FooBah:我需要明确知道我正在运行的操作系统(x32/x64),这样我才能根据情况执行dos(thecorrectfile.bat) - niels
2个回答

3

根据您的评论,我猜测您正在运行Windows操作系统。

请查看环境变量PROCESSOR_ARCHITECTURE和PROCESSOR_ARCHITEW6432。它们的存在和值的组合将告诉您正在运行的系统。

x64 Windows上的x64 Matlab:
PROCESSOR_ARCHITECTURE=AMD64

x86 Windows上的x86 Matlab:
PROCESSOR_ARCHITECTURE=x86

x64 Windows上的x86 Matlab:
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_ARCHITEW6432=AMD64

然后,如果外部应用程序安装在传统位置,您可以使用环境变量PROGRAMFILES、PROGRAMFILES(X86)和PROGRAMW6432找到正确的“Program Files”路径来启动它。

请搜索“WoW64”以了解有关Windows x64和x86环境如何相互作用的更多信息。


谢谢,根据http://msdn.microsoft.com/en-us/library/aa384274%28v=vs.85%29.aspx提供的信息,您提供的信息似乎是正确的。我已经检查了第一个情况(x64 matlab on x64 win),这适用于我。如果有人能够检查另外两种情况,那么问题就解决了。 - niels

1
在Windows上,您可以尝试解析dos('systeminfo')的输出,但速度不是很快。在Linux上,您可以尝试解析unix('uname -a')的输出。

谢谢,那可能是一个解决方案。我正在运行x64 Win 7,在“系统类型”中返回“基于x64的PC”。如果我在x64硬件上运行x32 Win,这会变成“基于x32的PC”吗? - niels
在MATLAB中尝试运行以下命令:winqueryreg('HKEY_LOCAL_MACHINE', 'HARDWARE\DESCRIPTION\System\CentralProcessor\0', 'Identifier')。我得到的响应是"Intel64 Family 6 Model 23 Stepping 10",从中可以明显看出我正在运行x64操作系统。能够运行该命令的人,请写下反馈(您正在运行的操作系统以及您的硬件是否支持x64架构)。 - niels

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接