WedX - журнал о программировании и компьютерных науках

Импорт нескольких классов в один файл .m в Matlab?

Я видел 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, а затем было отключено?

23.05.2017

  • Да, MATLAB требует только один класс на файл. 24.05.2017

Ответы:


1

Оказывается, в соответствующей литературе также упоминается об этом:

Следует отметить, что все представленные классы показаны в одном М-файле для компактности, хотя на практике MATLAB требует, чтобы каждый класс находился в отдельном файле. Другими словами, классы... должны быть разбиты на семь разных файлов, чтобы модель могла работать в MATLAB.

... так что я думаю, это просто так это работает ...

23.05.2017
Новые материалы

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


Для любых предложений по сайту: [email protected]