Approaches To Writing Matlab Programs (Подходы к написанию MATLAB-программ)
Создание программных приложений обычно предполагает разработку способа представления данных и определения операций над этими данными. Процедурные программы обычно посылают данные в явном виде функциям, которые исполняют необходимые операции над этими данными. Объектно-ориентированные программы оперируют классами, подклассами и объектами - представителями обобщающего их класса или подкласса, которые взаимодействуют между собой посредством интерфейсных операций и содержат (скрывают или инкапсулируют) необходимые данные.
Язык MATLAB позволяет создавать программы процедурных, объектно-ориентированных и комбинированных типов (с совместным использованием классов, подклассов, объектов и обычных функций).
ProceduralProgrammingDesign (Процедурная программная разработка)
В процедурном программировании вы концентрируете внимание на шагах, выполняемых для достижения цели. Вы обычно представляете данные как переменные или поля MATLAB-структур, а операции – как классические процедуры-функции, которые принимают переменные-аргументы и используют их. Программы обычно вызывают функции последовательно. Каждая функция выполняет одну или несколько операций над данными.
Object-OrientedProgrammingDesign (Объектно-ориентированная программная разработка)
Объектно-ориентированная разработка программ включает:
w идентификацию (формулирование) отдельных (индивидуальных) компонентов системы или приложения;
w анализ и идентификацию прототипов (образцов) для определения общей формы компонентов, которые используются неоднократно или имеют общие характеристики;
w классификацию (иерархическую организацию) компонентов, основанную на их однотипности или различии.
После выполнения указанных шагов необходимо формально строго описать (программно определить) классы (подклассы) и их составные части.
Classes and Objects (Классы и объекты)
Класс описывает общие характеристики множества его представителей (инстанций) класса. Класс имеет, помимо прочего, свойства (хранилища данных) и методы (процедуры) обработки данных, относящиеся ко всем его инстанциям. В качестве инстанций могут выступать подклассы и/или объекты. Подклассы - это более узко определенные категории исходного (базового) класса (суперкласса), которые могут иметь, кроме общих, также свои особенности (например, дополнительные свойства и методы и/или свои варианты общих методов), а объекты являются последней ступенью реализации обобщающего их класса (подкласса). Для объектов значения унаследованных от класса (подкласса) свойств определяют отличие данного объекта от других объектов того же класса (подкласса), а специфические свойства и операции – отличия объектов от их обобщающих классов. С учетом наследуемости общих характеристик подклассы и их объекты являются вариантами производных форм базовых классов. Таким образом, любой класс (подкласс) выполняет роль интерфейса (связки) между его представителями, позволяя им использовать (наследовать) его обобщенные компоненты и определять (задавать или формулировать) как отличающиеся наследуемые, так и дополнительные собственные параметры. Все MATLAB-классы делятся на встроенные и user-defined (разрабатываемые MATLAB-пользователями) классы.
Using Objects in MATLAB Programs (Использование объектов в MATLAB-программах)
Язык MATLAB описывает некоторые объекты, которые уже содержатся (встроены) в пакете и готовы для использования в любых MATLAB-кодах. Например, рассмотрим стандартную программную конструкцию try-catch языка MATLAB.
Если код функции или операции, выполненный внутри блока try (начало всей конструкции try-catch), генерирует ошибку, дальнейшие действия автоматически переносятся в следующий блок catch для обеспечения специальной (определенной программистом) обработки возникшей ошибки. Разумеется, для эффективной обработки ошибки необходимо иметь достаточно информации о ней.
MATLAB предоставляет детальную информацию об ошибке с помощью специализированного объекта ME (при возникновении ошибки MATLAB автоматически создает объект ME, его название в конструкции try-catch можно изменить) класса MException (данное имя стандартизовано). Этот объект передается в особую встроенную MATLAB-функцию, выполняющую всю работу в конструкции try-catch.
Ниже дан пример блоков try-catch, которые выдают сообщение об ошибке:
try % Начало конструкции try-catch и блока try.
surf % Неверный вызов стандартной MATLAB-функции surf
% (нет необходимых аргументов), поэтому произойдет
% автоматический переход к блоку catch:
catch ME % Конец блока try и начало блока catchс указанием
% объекта ME, содержащего информацию об ошибке.
disp(ME.message) % Вызов стандартной MATLAB-функции
% disp (отображение на экране) с аргументом
% ME.message (свойством message объекта ME, где хранится
% сообщение об ошибке); обращение к функции disp является
% содержанием и смыслом данного блока catch.
end % Конец блока catchи всей конструкции try-catch.
Результат выполнения приведенного кода try-catch на экране монитора (в соответствии с функцией disp) будет иметь следующий вид (показанный ниже текст для каждого вида ошибки пишется заранее в MATLAB-файлы и автоматически используется при создании объекта ME):
Not enough input arguments(Нет необходимых входных аргументов).
Данное сообщение, взятое из свойства message объекта ME, – далеко не вся информация, имеющаяся в объекте ME.
Другая информация содержится в остальных свойствах объекта ME. Имена всех общедоступных (public) свойств класса MException, к которому принадлежит объект ME(MException-объект), можно увидеть с помощью стандартной MATLAB-функции properties (до обращения к объекту ME последний должен быть создан, т.е. должна быть предварительно выполнена конструкция try-catch):
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.