Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Как видно из таблицы, применение 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-файла не могут обращаться к одним и тем же переменным, если они не объявлены глобальными переменными внутри соответствующих функций, или не переданы им в качестве параметров.

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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...