-
До сих пор мы в основном использовали систему MATLAB в режиме непосредственного счета – в командном режиме. Однако при решении серьезных задач возникает необходимость сохранения используемых последовательностей вычислений, а также их дальнейшей модификации.
-
Итак, программами в системе MATLAB являются m-файлы текстового формата, содержащие запись программ в виде программных кодов. Язык программирования системы MATLAB имеет следующие средства: | данные различного типа; | константы и переменные; | операторы, включая операторы математических выражений;
-
Структура типов данных системы MATLAB представлена ниже. | Типы данных array и numeric являются виртуальными ("кажущимися"), поскольку к ним нельзя отнести какие-либо переменные. Они служат для определения и комплектования некоторых типов данных.
-
На рынке программного обеспечения система MATLAB позиционируется как язык высокого уровня для научно-технических расчетов. Таким образом, возможность программирования относится к важным достоинствам данного языка, несмотря на обилие средств прямого решения задач.
-
Для языка системы MATLAB различие между командами (выполняемыми при вводе с клавиатуры) и программными операторами (выполняемыми из программы) является условным. И команды, и программные операторы могут выполняться как из программы, так и в режиме прямых вычислений.
-
Итак, мы установили, что работа в командном режиме (сессия) не является программированием. Внешним атрибутом последнего в MATLAB служит задание последовательности действий по программе, записанной в виде m-файла.
-
Переменные, указанные в списке параметров функции, являются локальными и служат для переноса значений, которые подставляются на их место при вызовах функций. | Эта особенность переменных-параметров хорошо видна при разборе примера, показанного на рис. 20.3.
-
М-файл-функция является типичным объектом языка программирования системы MATLAB. Одновременно он является полноценным модулем с точки зрения структурного программирования, поскольку содержит входные и выходные параметры и использует аппарат локальных переменных.
-
Итак, из сказанного ясно, что переменные в файлах-сценариях являются глобальными, а в файлах-функциях – локальными. Нередко применение глобальных переменных в программных модулях может приводить к побочным эффектам.
-
Вывод сообщений об ошибках | Часто в ходе вычислений возникают ошибки. Например, мы уже сталкивались с проблемой вычисления функции sin(x)/x – при х = 0 имеет место ошибка вида "деление на ноль". При появлении ошибки вычисления могут завершиться досрочно с выводом сообщения об ошибке.
-
При создании функций со специальными свойствами весьма полезны две приведенные ниже функции: | nargin – возвращает число входных параметров данной функции; | nargout – возвращает число выходных параметров данной функции.
-
Для упрощения записи аргументов функций их можно представить списком, который определяет специальная переменная varargin, являющаяся массивом ячеек. Она должна записываться строчными буквами и может включать в себя как аргументы, так и опции функций.
-
Как отмечалось, команда help name, где name – имя m-файла, обеспечивает чтение первой строки с текстовым комментарием и тех строк с комментариями, которые следуют непосредственно за первой строкой. Комментарий, расположенный за пределами этой области, не выводится.
-
Когда встречается сценарий или функция в виде m-файла, то всякий раз выполняется трансляция файлов, создающая так называемые Р-коды (псевдокоды). Она связана с синтаксическим контролем сценария или функции, который несколько замедляет вычисления.
-
Помимо программ с линейной структурой, инструкции которых исполняются строго по порядку, существует множество программ, структура которых нелинейна. При этом ветви программ могут выполняться в зависимости от определенных условий, иногда с конечным числом повторений – циклов, иногда в виде циклов, завершаемых при выполнении заданного условия.
-
Условный оператор if в общем виде записывается следующим образом: | if Условие | Инструкции_1 | else if Условие | Инструкции_2 | else | Инструкции_3 | end | Эта конструкция допускает несколько частных вариантов. В простейшем, типа if…end: | if Условие Инструкции end | Пока Условие возвращает логическое значение 1 (то есть "истина"), выполняются Инструкции, составляющие тело структуры if…end.
-
Циклы типа for…end обычно используются для организации вычислений с заданным числом повторяющихся циклов. Конструкция такого цикла имеет следующий вид: | for var=Выражение. Инструкция.....
-
Для осуществления множественного выбора (или ветвления) используется конструкция с переключателем типа switch: | switch switch_Выражение | case case_Выражение | Список_инструкций | case {case_Выражение1, Case_выражение2, case_Выражение3....} | Список_инструкций | otherwise.
-
В MATLAB 6 введена новая конструкция блока вывода ошибок try…catch…end: | try. | Список инструкций | Список инструкций catch. | Список инструкций | ... | Список инструкций | end | Эта конструкция выполняет все списки инструкций.
-
Для остановки программы используется оператор pause. Он используется в следующих формах: | pause – останавливает вычисления до нажатия любой клавиши; | pause(N) – останавливает вычисления на N секунд; | pause on – включает режим отработки пауз; | pause off – выключает режим отработки пауз.
-
Мы уже много раз упоминали различные объекты языка программирования системы MATLAB. Это является одним из признаков объектно-ориентированного программирования (ООП), причем чисто внешним. В основе объектно-ориентированного программирования лежат три основных положения. | Инкапсуляция –
-
Для создания класса объектов или объектов, а также для их идентификации служит функция class. Формы ее применения представлены ниже. | class (OBJ) – возвращает класс указанного объекта OBJ. Типы стандартных классов double, sparse, char, cell, struct, functionjiandle были перечислены выше.
-
Для получения списка методов данного класса объектов сейчас чаще используются функции methodsview и methods. Отличиями от what имя класса является то, что эти функции возвращают информацию также и о классах Java, но информация выводится в отдельном окне, не сообщается информация о папках, все методы из всех папок собраны вместе, и повторяющиеся имена методов удалены: