Я видел MATLAB: альтернатива функции "источник" Octave ( import m-file), но я не могу понять, как работает следующее. Это для Matlab R2016b.
Я смотрю на M_files_chap12.zip, и в этом .zip, там два файла:
WDFDiodeExample.m
который работает и использует некоторые дополнительные классыWDFClasses.m
, которые содержат дополнительные классы
Вот фрагмент WDFClasses.m
:
% WDFclasses.m
% ....
%----------------------WDF Class------------------------
classdef WDF < hgsetget % the WDF element superclass
properties
PortRes % the WDF port resistance
end
methods
function Volts = Voltage(obj) % the voltage (V) over a WDF element
Volts = (obj.WU+obj.WD)/2; % as defined in the WDF literature
end
end;
end
%----------------------Adaptor Class------------------------
classdef Adaptor < WDF % the superclass for ser. and par. (3-port) adaptors
properties
KidLeft % a handle to the WDF element connected at the left port
KidRight % a handle to the WDF element connected at the right port
end;
end
...
Проблема в том, что я не могу импортировать эти классы из этого файла. Я попытался добавить каждое из следующих утверждений в начале WDFDiodeExample.m
:
WDFClasses %this will run WDFClasses.m; but % Class name and filename do not agree.
eval(fileread('WDFClasses.m')) % Error: Illegal use of reserved keyword "classdef".
run('WDFClasses.m') % Class name and filename do not agree.
... и я получаю ошибки, написанные в комментариях.
Кажется, что MATLAB нужен только один класс на m-файл, и, похоже, он не распознает несколько классов, упакованных в один файл, но тогда почему авторы решили написать WDFClasses.m
как так, так что это непригодно для использования напрямую? Или это было возможно в более ранних версиях MATLAB, а затем было отключено?