如何检测运行MATLAB或Octave?
我需要编写在Octave和MATLAB上运行的代码。 问题是,它需要做一些GUI的东西,MATLAB和八度处理完全不同。
有没有一种方法,我可以检测,如果我正在运行MATLAB或八度,为了调用正确的function?
您可以使用以下testing来区分八度与MATLAB:
isOctave = exist('OCTAVE_VERSION', 'builtin') ~= 0;
官方的octave.org网站上也有一个提示 。 他们提出以下build议:
function foo ## fancy code that works in both if (is_octave) ## use octave super_powers else ## do it matlab way end ## fancy code that works in both end ## subfunction that checks if we are in octave function r = is_octave () persistent x; if (isempty (x)) x = exist ('OCTAVE_VERSION', 'builtin'); end r = x; end
在Matlab中:
>> exist octave_config_info ans = 0
在八度:
octave:3> exist octave_config_info ans = 5
我会使用,例如,ver命令,这会产生:
在MATLAB中:
MATLAB版本7.7.0.471(R2008b)操作系统:Linux 2.6.31-20-generic#57-Ubuntu SMP Mon Feb 8 09:05:19 UTC 2010 i686 Java VM版本:Java 1.6.0_04与Sun Microsystems Inc. Java HotSpot (TM)客户端VM混合模式
在八度:
GNU Octave版本3.0.5 GNU Octave许可证:GNU通用公共许可证操作系统:Linux 2.6.31-20-generic#57-Ubuntu SMP Mon Feb 8 09:05:19 UTC 2010 i686
另一种可能性是使用许可证function。