gpt4 book ai didi

matlab - 使用不同版本的 Matlab 函数

转载 作者:太空宇宙 更新时间:2023-11-03 19:38:50 26 4
gpt4 key购买 nike

我们有一个 matlab 函数 nanstd.m 的遗留定义,它在很多函数中被调用。

遗留版本的定义如下:

function y = nanstd(x, dim);

上述定义存储在我们的本地服务器驱动器“H\Util\Functions”中。

较新版本的 matlab 有一个不同的定义:

function y = nanstd(fts, varargin)

以上翻译为:

Y = nanstd(X,flag,dim)

以上存储在“C\Program Files\Matlab”下。

我们需要两个版本都可用。是否有可能我可以编写一段代码,如果有 2 个参数输入,则在“H\Util\Functions”中使用 nanstd.m,如果有 3 个输入,则在“C\Program Files\Matlab”中使用 nanstd.m .

谢谢

最佳答案

由于您的遗留定义应该在路径中的内置版本之前出现,您可以简单地将以下内容添加到您的自定义 nanstd 中,使其行为如下:

function y = nanstd(x,varargin)

if nargin > 2
wd = cd(fullfile(matlabroot,'toolbox','stats','stats'));
y = nanstd(x,varargin{:});
cd(wd)
return
elseif nargin == 2
flag = varargin{1};
end

%// ... continue custom nanstd function

根据 this discussion on MatlabCentral , 运行隐藏函数的唯一方法是切换到它的目录。令人惊讶的是,该路径支持当前目录到当前函数——这让我感到惊讶——但这对这种情况是有益的。这使您可以简单地修改自定义遗留 nanstd 函数以踢出内置定义。

编辑:您可能希望使用 try/catch 包装对统计信息 nanstd 的调用,这样即使出现错误,您的目录也能始终得到恢复。

关于matlab - 使用不同版本的 Matlab 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19183734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com