- •Содержание
- •Введение
- •1. Описание панели инструментов
- •1.1. Командное окно
- •1.2. Окно редактирования и отладки
- •1.3. Окно рабочей области
- •2.1. Переменные, константы и специальные символы
- •1.4. Пути доступа к m-файлам
- •1.5. Окно справки Help Window
- •2. Переменные, операторы и функции системы matlab
- •2.2. Арифметические операторы
- •2.3. Операторы и функции отношения
- •2.4. Логические операторы
- •2.5. Элементарные функции
- •2.6. Массивы и матрицы
- •3. Графические средства системы matlab
- •3.1. Основные операторы и функции графики
- •3.2. Окно графики
- •3.3. Графика в прямоугольных координатах
- •3.4. Масштабирование осей и вывод на экран
- •3.5. Графика в полярных координатах
- •3.6. Построение столбиковых даграмм и гистограмм
- •3.7. Отображение трехмерных поверхностей
- •4. Программирование в системе matlab
- •4.1. Структура m-файла сценария и функции
- •4.2. Ввод и вывод иформации
- •4.3. Форматы вывода чисел
- •4.4. Функции nargin и nargout
- •4.5. Локальные и глобальные переменные
- •4.6. Управление последовательностью выполнения
- •4.7. Ускорение вычислений
- •4.8. Примеры программирования с использованием средств пакета Matlab
- •5. Система simulink
- •5.1. Библиотека модулей
- •5.2. Раздел Sinks (получатели сигналов)
- •5.3. Раздел Sources (источники сигналов)
- •5.4. Раздел Continuous (аналоговые блоки)
- •5.5. Раздел Discrete (дискретные блоки)
- •5.6. Раздел Function & Tables (функции и таблицы)
- •5. Логические операторы (&& | | !).
- •5.7. Раздел Math (математические блоки)
- •5.8. Раздел Nonlinear (нелинейные компоненты)
- •5.9. Раздел Signal & Systems (блоки преобразования сигналов и создания систем)
- •5.10. Применение системы Simulink в задачах моделирования динамических систем
- •Литература
4. Программирование в системе matlab
4.1. Структура m-файла сценария и функции
Файлы, которые содержат коды языка Matlab, называются m-файлами. Существует два типа m-файлов: m-сценарии и m-функции с характеристиками, описанными в таблице:
Таблица 4.1 - Характеристики m-файлов
m-сценарий |
m-функция |
Не использует входных и выходных аргументов |
Использует входные и выходные аргументы |
Оперирует с данными из рабочей области |
По умолчанию, внутренние переменные являются локальными по отношению к функции |
Предназначен для автоматического выполнения последовательности шагов, которые нужно выполнять много раз |
Предназначена для расширения возможностей языка Matlab (создание библиотек функций, пакетов прикладных программ) |
Как видно из таблицы, применение m-функций обеспечивает для системы Matlab свойства расширяемости.
Структура m-функции состоит из следующих компонентов:
первая строка содержит имя функции ее входные и выходные переменные (fuction [выходние переменные (перечисляются через запятую)]=<имя функции>(входные переменные, перечисляемые через запятую));
после объявления имени функции обычно следуют строки коментариев, которые описывают m-функцию;
далее следует тело m-функции, которое содержит последовательности вычислений (используемые в теле переменные являются локальными, но специальным образом можно использовать глобальные переменные).
Пример 4.1. В качестве примера приведем m-функцию ctrb из библиотеки Matlab (эта функция вычисляет матрицу управляемости для линейной динамической системы [10]):
function c = ctrb(a,b)
%ctrb Compute the controllability matrix.
%c=ctrb(A,B) returns the controllability matrix [B AB A^2B ...].
%c = ctrb(SYS) returns the controllability matrix of the
%state-space model SYS with realization (A,B,C,D). This is
%equivalent to ctrb(sys.a,sys.b).
%For ND arrays of state-space models SYS, c is an array with N+2
%dimensions where c(:,:,j1,...,jN) contains the controllability
%matrix of the state-space model SYS(:,:,j1,...,jN).
%See also ctrb, ss.
%Copyright (c) 1986-1999 Mathworks, Inc. All Rights Reserved.
%$Revision: 1.5 $ $Date: 1999/01/05 12:08:31 $
error(nargchk(2,2,nargin))
n = size(a,1);
c = b;
for i=1:n-1,
c = [b a*c];
end
Все m-файлы являются обычными текстовыми файлами, которые создаются с помощью текстового редактора. Для операционной среды персонального компьютера система Matlab поддерживает специальный встроенный редактор/отладчик, хотя можно использовать и любой другой текстовый редактор с ASCII-кодами.
Сценарии являются самым простым типом m-файла - у них нет входных и выходных аргументов. Они используются для автоматизации многократно выполняемых вычислений. Сценарии оперируют данными из рабочей области и могут генерировать новые данные для последующей обработки в этом же файле. Данные, которые используются в сценарии, сохраняются в рабочей области после завершения сценария и могут быть использованы в дальнейшем.
Каждой m-функции выделяется дополнительная область памяти, не пересекающаяся с рабочей областью системы Matlab. Такая область называется рабочей областью функции. Каждая функция имеет свою собственную рабочую область. При работе с системой можно получить доступ только к переменным, размещенным в рабочей области системы или в рабочей области функции. Если переменная объявлена глобальной, то ее можно рассматривать как бы принадлежащей нескольким рабочим областям. Примеры m-сценариев и m-функций приведены в разделе 4.8 (см. примеры 4.7, 4.8).
Первая функция в файле - это основная функция, вызываемая по имени m-файла. Другие функции внутри файла - это подфункции, которые являются видимыми только для основной функции и других подфункций этого же файла. Каждая подфункция имеет свой собственный заголовок. Подфункции следуют друг за другом непрерывно. Подфункции могут вызываться в любом порядке, в то время как основная функция выполняется первой.
Функции внутри одного и того же m-файла не могут обращаться к одним и тем же переменным, если они не объявлены глобальными переменными внутри соответствующих функций, или не переданы им в качестве параметров.
