Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Структура 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-файла не могут обращаться к одним и тем же переменным, если они не объявлены глобальными переменными внутри соответствующих функций, или не переданы им в качестве параметров.
4.2. Ввод и вывод иформации
В процессе выполнения m-файла пользователь может:
§ вывести на экран запрос и ввести соответствующую информацию с клавиатуры;
§ сделать паузу до нажатия клавиши;
§ использовать графический интерфейс пользователя.
Функция input выводит на экран запрос и ждет ответа пользователя. Эта функция выглядит следующим образом:
n = input ('запрос').
Функция возвращает введённое с клавиатуры значение. Функция полезна для реализации диалоговых прикладных программ. Функция input может также возвращать не числовое, а строковое выражение, вводимое пользователем.
В некоторых случаях целесообразно устанавливать паузу между отдельными шагами алгоритма, например, при выводе графиков. Команда pause (без параметров) останавливает выполнение до тех, пока не будет нажата какая-нибудь клавиша. Чтобы реализовать паузу в n секунд, необходимо применить оператор pause (n).
Вывод информации в системе Matlab можно осуществить графически в графическом окне (см. раздел 3) и в виде числовой или текстовой информации в командном окне. При этом, как указывалось ранее, результат выполнения операции (числовой) будет представлен в командном окне, если после оператора нет точки с запятой (;). Текстовую и числовую информацию можно вывести с посмощью оператора disp. Пример использования этого оператора приведен в примере 4.7.
Кроме того, ввод и вывод информации в системе Matlab можно выполнить через Excel Link, который позволяет осуществлять обмен между рабочими пространствами Excel и Matlab. Для установки Excel Link необходимо в системе Excel открыть, включив макросы, файл exlink.xla, который находится в системе Matlab в папке EXLINK (при этом Matlab загрузится автоматически). После загрузки слева над таблицей Excel появятся три кнопки:
Putmatrix - осуществляет передачу переменной из Excel в Matlab (появляется окно, в котором необходимо указать имя переменной, при этом необходимо в Excel выделить таблицу с числовой информацией, которая передается в рабочее пространство Matlab);
Getmatrix - осуществляет передачу переменной из Matlab в Excel (появляется окно, в котором необходимо указать имя переменной, при этом необходимо в Excel выделить область в которую передается числовая информация из рабочего пространства Matlab);
Дата публикования: 2014-10-29; Прочитано: 631 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!