gpt4 book ai didi

matlab - 在 Matlab 中引用静态函数

转载 作者:太空宇宙 更新时间:2023-11-03 20:30:21 24 4
gpt4 key购买 nike

对于 MATLAB 中的对象,是否可以在不知道包含包的情况下调用相同类型的静态函数?现在,我发现引用它的唯一方法是使用 Package.Whatever.staticfunction(),但我想通过让它独立于它所在的任何包运行来正确封装该类中。

我现在找到的解决方案是:

classdef Whatever
methods(Static)
function fig = staticfunction()
...snip...
end
end
methods
function obj = Whatever()
% Call Package.Whatever.staticfunction();
eval(sprintf('%s.staticfunction();', class(obj)));
end
end
end

但这看起来笨拙、缓慢且不正确。有更好的方法吗?

最佳答案

您可以简单地使用实例来调用静态方法。这看起来像一个非静态方法调用,但它不是:

classdef StaticTest

methods (Static)
function doStatic()
fprintf('Static!\n');
end
end

methods
function obj = StaticTest()
obj.doStatic()
end

function obj = doNotStatic(obj)
fprintf('Not static!\n');
obj.doStatic();
end
end

end

用法:

>> x = StaticTest();
Static!
>> x.doNotStatic();
Not static!
Static!

关于matlab - 在 Matlab 中引用静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18129920/

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