Что касается объекта в MATLAB, можно ли вызвать статическую функцию того же типа, не зная охватывающего пакета? Прямо сейчас, единственный способ, которым я нашел ссылку, это использовать Package.Whatever.staticfunction()
, но я хотел бы правильно инкапсулировать класс, если он работает независимо от того, в каком пакете он находится.Ссылка на статические функции в Matlab
Решение, которое я нашел правильно теперь есть:
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
но это кажется неуклюжим, медленным и неправильным. Есть ли лучший способ сделать это?
Это решение действительно странный язык, но, похоже, это сработало, спасибо! – kevmo314