8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 80 81 82 83 84 85 86 ... 365

его выполнение при помощи <F9> — был рассмотрен выше. Кроме этого, редактор М-файлов позволяет разбить всю программу на ячейки и выполнять их независимо. Текст разбивается на ячейки при помощи строк комментариев, начинающихся с двух идущих подряд знаков процента (%%).

Для использования средств редактора при работе с ячейками кода следует установить режим Cell Mode, выбрав в меню Cell пункт Enable Cell Mode. При этом становятся доступными другие пункты этого меню, а выбранный изменится на Disable Cell Mode для отмены режима. Кроме того, появляется панель инструментов для работы с ячейками. Для оформления файла можно использовать следующие пункты меню Cell:

□Insert Cell Divider — вставка разделителя ячеек из двух символов процента (%%). Если курсор находится не в первой позиции строки, то разделитель вставляется за текущей строкой, иначе перед ней;

□Insert Cell Divider around Selection— вставка разделителей ячеек (%%) до и после выделенного фрагмента (строки предварительно должны быть выделены);

□Insert Text Markup— раскрывающийся пункт меню для вставки строк образцов комментариев в место, где расположен курсор.

Способ исполнения ячеек файла также определяется в меню Cell:

□Evaluate Current Cell — выполняются строки текущей ячейки, и она остается текущей;

□Evaluate Current Cell and Advance — выполняются строки текущей ячейки, и текущей становится следующая ячейка;

□Evaluate Entire File — выполняется весь файл.

При выполнении файла требуется, чтобы переменные, используемые в командах и функциях, присутствовали в среде Workspace. Поэтому не рекомендуется исполнять ячейки файл-функций, т. к. имена аргументов при обращении к функции и имена параметров в тексте функции, как правило, не совпадают.

Г1 редупреждение

Выполнение ячеек М-файла в режиме Cell Mode происходит без предварительного сохранения его на диске, в отличие от запуска всего файла при помощи <F5>. Поэтому, если вы отлаживаете файл, не забудьте его сохранить, иначе внесенные изменения могут быть потеряны.


Перемещение по ячейкам вверх и вниз осуществляется выбором в меню Cell пунктов Previous Cell и Next Cell соответственно. Цвет фона ячейки определяется в настройках редактора в диалоговом окне Preferences. В нем следует выбрать пункт Display, установить флаг Show cell highlighting и выбрать цвет в раскрывающемся списке справа or флага.

Для освоения простейших принципов работы с М-файламн. разбитыми на ячейки, создайте новый файл н скопируйic туда leKCi из файла mydemo.га (см. листинг 5.1). Переместите курсор в конец строки piot(x,f) и в меню Cell выберите пункт Insert Cell Divider. После этой строки вставтея с фока из двух знаков процента . делящая файл на две ячейки. Выполните весь файл, используя пункт Evaluate Entire File мчи соответствующую кнопку на панели инструментов. Измените функцию ехр(-х) на 1од{1 + л) и выполните содержащийся в первой ячейке код. выбрав пункт Evaluate Current Cell. Вид первого графика изменится. Аналогичным образом можно вывести график другой функции ни трутне оси. выполнив вторую ячейку. Не закрывайте графическое окно, потому что мы сейчас рассмотрим еще один М-файл. разбитый на ячейки,— автоматически созданную файл-функцию, которая соответствует нашему графическому окну.

Перейдите в графическое окно и сгенерируйте код для его построения, выбрав в меню File пункт Generate M-File. В редакторе М-файлов создается новое окно с текстом файч-функцпн createfigure, приведенным в листинге 5.15.

I Листинг 5.15. Автоматически созданная функция для графического окна

function createfigure(xl, yi, y2) %CREATEFIGDRE(X1, Yl, Y2] fe XI: vector of x data % Yl: vector of у data % Y2: vector ot у data

% Auto-generated by MATLAB on 24-Jul-2004 08:16:35 %% Create figure

figurel = figure<PaperPosition, [0.6345 6.345 20.3 15.23], Papersize1, [20.98 23.681);

%% Create axes

axesl = axes(1OuterPosition, [0 0 0.4823 1], 1 Parent",figurel); hold(axesl, all1);


%% Create plot

plotl = plot(xl, yl, Parent, axesl) ,-%% Create axes

axes2 = axes(1OuterPosition, [0.4823 0 0.5177 1], Parent, figurel); hold(axes2, all);

4% Create plot

plot2 = plot (xl, y2, Parent", axes2) ,-

MATLAB создает файл-функцию с выделением ячеек для каждого шага построения: создания графического окна, осей и графиков, вы можете изменить и дополнить текст этой файл-функции по своему усмотрению. Файл-функция зависит от трех аргументов xl, yl и у2, являющихся формальными параметрами, которые не определены в рабочей среде Workspace. Можно, например, удалить заголовок, превратив файл-функцию в файл-программу, и заменить формальные переменные xl, yl и у2 на переменные рабочей среды х, f и g соответственно. Последовательное выполнение ячеек полученной файл-программы продемонстрирует все шаги для создания графического окна с графиками нужной функции. В качестве упражнения добавьте в нужные ячейки команды для вывода заголовков к графикам.

Разбиение файл-программы на ячейки и их выполнение дает возможность контроля за ходом работы программы. Для файл-функций применение этой технологии сопряжено с определенными трудностями, поскольку ее переменные являются локальными. Это обстоятельство подчеркнуто в справочной системе MATLAB. Редактор М-файлов включает в себя более мощный инструмент-— отладчик, описанию и демонстрации возможностей которого мы уделим далее внимание при программировании приложений (средства диалоговой отладки рассматриваются в главе 8).

Обратимся теперь к еще одной привлекательной возможности MATLAB, которая помогает эффективно реализовывать собственные алгоритмы — к средству M-Lint для диагностики М-файлов.

Диагностика М-файлов

В состав среды MATLAB включено средство M-Lint для проверки качества и корректности написанного кода. Для этого после сохранения М-файла следует в меню редактора Tools выбрать пункт Check Code with M-Lint (если



0 ... 80 81 82 83 84 85 86 ... 365