首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从程序上区分MATLAB和Freemat?

如何从程序上区分MATLAB和Freemat?
EN

Stack Overflow用户
提问于 2013-11-19 11:09:23
回答 2查看 240关注 0票数 4

我有一些代码需要在MATLAB和Freemat中运行,在每种情况下都使用不同的服务函数。为了使整个程序具有可移植性,我需要找到一种方法来确定在代码开始时调用哪些函数,这取决于我所处的环境。

一个人是怎么做到的?

我正在考虑使用version命令,但不太确定这是否真的健壮。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-19 21:35:15

使用verstringtry \ catch的上下文中,matlab中的输出将是一个错误,而在Freemat中,输出将类似于“freemat4.0”,例如:

代码语言:javascript
复制
try
    txt=verstring;
    output='Freemat';
catch err
    output='Matlab';
end
票数 3
EN

Stack Overflow用户

发布于 2013-11-20 08:00:09

如果不确定,我会尝试识别每一个,并给出一个错误,或者在这种情况下请用户手动识别:

代码语言:javascript
复制
% try to identify if it is freeMat
isDefinatelyFreeMat = false;
try
    versionIdentifier=verstring;
    if (strcmpi(versionIdentifier(1:7), 'FreeMat'))
        isDefinatelyFreeMat = true;
    end
catch e
end

% try to identify if it is Matlab
isDefinatelyMatlab = false;
try
    versionIdentifier=ver;
    if (strcmpi(versionIdentifier.Name, 'Matlab'))
        isDefinatelyMatlab = true;
    end
catch e
end

% if identification was not successful
if ((isDefinatelyFreeMat && isDefinatelyMatlab) || (~isDefinatelyFreeMat && ~isDefinatelyMatlab))
    error('Was unable to identify software.');
    % TODO: Ask user to identify software manually
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20069880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档