Brian_-_Matlab_R2007_s_nulya_33 (771739), страница 33
Текст из файла (страница 33)
Например, 0010Е (Среда' разработки графического интерфейса пользователя) вставляет в М.файл раздел, который начинается кодом МАРВ 170 зь --- йсесике диве ЬеЕоге р1окди1 1в жас(е зг1в1Ь1е. Еииск1ои р1осди1 Ореи1пдуси (ЬОЬ5еск, езгепкбака, Ьаа41ев,»гагагд1п) !з гЬ1в йииск1оп Ьав ио оисрик агдв, вес Оикрикрсп. и включает в себя строки зз ТЬ1в векв ир кЬе 1и1к1а1 р1ок - ои1у бо еЬеи ее аге 1ич1в1Ь1е зз во е1ибое сап дев га1вей ив1ид р1окди1. 1Е вакса(р(дев (ЬОЬДеск, 'Ч1в1Ь1е ' ), 'ока ' ) р1оа(хаза(((б) ) ) Это тот раздел М-файла, который отвечает за «случайные линии», которые вы видите в окне координат (Рис. 9 4). Если бы мы убрали эти строки или изменили их, 0Ц! (Графический интерфейс пользователя) загрузился бы с совершенно другим изображением или не загрузил бы вообще никакого изображения.
Для Рорир Мепн (Открывающееся меню) с правой стороны 0Ц! (Графический интерфейс пользователя) мы вставляем следующие строки в возвратную функцию (модифицированную из шаблона, который поставляется с основным О()! (Графический интерфейс пользователя) (Рис. 9.2)). рорир ве11 1ибеж ю дес(ЬОЬ5еск, 'Ча1ие')) ве1ксЬ рорир ве11 1пс)еж саве 1 аж1в е<рла1 саве л аж1.в иогжа1 саве 3 аж1в вдиаге Каждый раз, когда пользователь 0Ц! (Графический интерфейс пользователя) выбирает элемент из открывающегося меню, программа МАТ(.АВ присваивает свойству объекта Ча(не (Значение) выбранный номер строки и запускает соответсгвующую возвратную функцию.
Подобно тому, как это бьио рассмотрено в главе 5, вы можете использовать команду дев, чтобы получить текущие настройки свойства графического объекта. При использовании возвратных шаблонов, предоставляемых инструментом 00(ОЕ (Среда разработки графического интерфейса пользователя) (как было описано), переменная ЬОЬ5еса будет содержать управляющий элемент (требуемый первый аргумент команды дев и век) для соответствующего объекта. (Если вы используете другой метод записи возвратных функций, вы можете применить в программе МАТ(.АВ команду дсЬо вместо команды лава 9. Графический интерфейс пользователя 171 .ОЬ5еос.) Для нашего образца интерфейса строка 1 в Рорир Мели (Открываю. !ееся меню) содержит значение «ес(ив)», и, если пользователь выбирает строку 1, озвратная функция запускает команду азсйв едпа1; то же происходит и с друими строками. И Вы могли заметить, что Рорир Мели (Открывающееся меню) на Рис.
9.4 содержит значение «потев!», а не»ес(на!», как на Рис. 9З; это потому, что мы назначили свойству Ча)не (Значение) значение 2 при создании 001 (Графический интерфейс пользователя) с использованием Ргорег!у (перес(ог (Инспектор свойств). В данном случае вы можете сделать выбранным по умолчанию не второй, а любой другой элемент в Рорир Мели (Открывающееся меню) или (.!э(Ьох (Поле списка).
(ля Рцвп Вийон (Нажать кнопку) с названием Р)о! И! (Начертить) мы записали ледующую возвратную функцию: ~ес(Ьапс11ев.ЯЯдцге1, 'Напо1еЧйваЬ111су', 'оа11Ьао)е') ! пга1 (дог (Ьапй1ев. ес)1С1, ' Ягг1пд ' ) ) !десь Ьап61ев. Ейдиге1 и Ьапс(1ев.еохс1 являются управляющими элемента~и для всего окна интерфейса и для поля ЕдИ Тех( (Редактирование текста) соот.етственно.
Эти переменные тоже предоставляются возвратными шаблонами в 10!ОЕ (Среда разработки графического интерфейса пользователя), и, если вы не юпользуете эту возможность, вы можете создать нужные управляющие элементы помощью команд доЫ и Я1пс(оЬ5 (доЬ|, 'Тад', 'ео1С1') соответственно. !торая строка возвратной функции (см. выше) использует команду дег для поис;а текста в поле Ег(И Тех! (Редактирование текста), а затем запускает команду с юмощью езга1. Первая строка использует команду вес, чтобы сделать окно инерфейса доступным для графических команд, используемых в возвратных функ!иях; если бы это не было сделано, то команда рисования, запущенная второй трокой, открыла бы отдельное окно изображения.
/ Мы могли бы также ассоциировать возвратную функцию с полем Едй Тех( (Редактирование текста); эта функция запускалась бы каждый раз при нажатии полыователем клавиши Щ после введения текста в поле. Возвратная функция езга1(дег(ЬОЬ3еог, 'Яггйпд') ) запустит только что введенную команду, представляя альтернативу кнопке Р)о! И! (Начертить).
/ Другой способ активировать рисование изображения в окне ИЛ (Графический интерфейс пользователя) — это выбрать команду меню Тоо1э + 601 Орйопв (Инструменты э Параметры С(Л) в модуле 1 ауоц! Ег)йог (Редактор планировки) и внутри появившегося окна изменить параметр Сопипапо41пе вссевэ)Ы1йу (Доступность командной строки) со значения Са11Ьас(г (Возврат) на Оп (Включено). При этом могут возникнуть трудности при введении пользователем команд рисования изображения в окне Сопкпапг) )Мпг(ое (Командное окно) для воздействия на окно 001 (Графический интерфейс полыователя).
Более безопасно будет в параметре Сопкпвпг(4!пе ассеээ1Ы(йу (Доступность командной строки) оставить значение Св11Ьас(г (Возврат). С такой настройкой приведенная ниже строка МАТ(.АВ 172 век(Ьаззс1ев.йадиге1, 'НаЫ1еуавЕЫ11ку', 'са11Ьас)с'); в возвратных функциях становится необязательной. Однако мы рекомендуем оставлять эту строку в возвратных функциях в случае, если вы решите изменить параметр Сопмпвпб-!1пе вссевв(Ьдйу (Доступность командной строки) позднее. В примере р1скди1 из предыдущего раздела есть один момент, где мы использовали существующую команду МАТ(АВ в качестве возвратной функции.
Для элемента РпвЬ Вц((оп (Нажать кнопку) под названием СЬапде ах(в 11тйв (Изменить пределы осей) мы просто ввели команду аи1злкП.д в возвратную функцию в файле р1о(дц).ш. Эта команда открывает диалог, который позволяет пользователю вводить значения для диапазонов на осях х и у. В программе МАТ(.АВ существует несколько диалогов, которые вы можете использовать как в качестве возвратных функций, так и в качестве обыкновенных М-файлов. Например, вы можете использовать команду даргавс(1д вместо команды 1приг. Чтобы ознакомиться с информацией по доступным диалогам, введите команду Ье1р п1ксс1в. Ниже представлена возвратная функция для элемента Рцвй Вц((оп (Нажать кноп- ку) под названием С(евг Ядигв (Очистить изображение).
век(Ьапй1ев.есЫ.с1, 'дсгдпд', ' ') ) ввв (Ьаззс)1ев. Еддпге1, 'Напс)1еудв1Ы11ву ', ' са11Ьас!с ' ) ) с1а гевег Первая строка очищает текст в поле Есд! Тех( (Редактирование текста), а последняя строка очищает поле Ахвв (Оси) в окне 001 (Графический интерфейс пользователя). (Если ваш 001 (Графический интерфейс пользователя) содержит более одного поля Ахвв (Оси), вы можете использовать команду ажев для выбора требуемого в данный момент поля в каждой из ваших возвратных функций.) Мы использовали приведенную ниже возвратную функцию для элемента Тодд1е Ви((оп (Кнопка-переключатель) под названием Но)6 1в ОЕР (Захват отключен): вев (Ьазз61ев. Идпге1, 'Наззс(1вудвз Ы11гу ', ' са11Ьас)е ' ) ) 1Е дев(ЬОЬзесг, 'Ча1ие') Ьс1сТ сп вес(ЬОЬЗесг, 'дгг1пд', 'Но14 Хв ОН') З в1ве ЬЫсн век(ЬОЬ3еск, 'Вкгйпд', 'Нс1й 1в ОУУ') З Мы получаем свойство Ча(це (Значение) элемента Тодд1е Вийон (Кнопка- переключатель) таким же способом, как и в приведенной выше возвратной функции для элемента Рорцр Мвпц (Открывающееся меню).
Но для элемента Тодд1е Вц((оп (Кнопка-переключатель) это значение равно либо О, если кнопка в Глава 9. Графический интерфейс пользователя 173 состоянии оо1 (выключена) (по умолчанию), либо 1, если кнопка в состоянии 1и (включена). (Элементы йао1о Вийоп (Переключатель) и СЬесйЬох (Поле с флажком) также имеют свойство Ча1ие (Значение) с показателями О и 1.) Когда пользователь в первый раз активирует элемент Тодй1е Вийоп (Кнопка- переключатель), значение приравнивается к 1, таким образом, возвратная функция (см. выше) запускает команду Ьо1с оп и переназначает строку, отображаемую на элементе Тодд1е Вийон (Кнопка-переключатель), чтобы отразить изменение. При следующем нажатии кнопки пользователем эти операции повторяются в обратную сторону.
Наконец, с объектом графического интерфейса вы можете также ассоциировать вариант возвратной функции под названием Вийоп0оепрсп (Нажатая кнопка). Такая функция начнется следующим образом ч --- виесикев оп кюиве ркевв отек еиев Ьас1сдхсязпй. Еивсвхов эжев1 Ииввоецоэлзэсв(ЬОЬЗеск, етеексеке~ Ьвисзев) и будет запущена, когда пользователь щелкнет мышью в окне координат (осей), или если щелкнет правой кнопкой мыши на таких объектах, как Ривй Вийон (Нажать кнопку) (в качестве противопоставления левой кнопке мыши для вызова возвратных функций). Чтобы создать такую функцию, вы можете щелкнуть правой кнопкой мыши на объекте в окне модуля Ьауоц1 Ео11ог (Редактор планировки) и выбрать команду Ч1еа СаПЬасйв + Вийоп0оапрсп (Показать возвратные + Нажатая кнопка). Вы можете точно также ассоциировать функции с некоторыми другими типами пользовательских событий (задач); чтобы узнать об этом больше, обратитесь к онлайновой документации или экспериментируйте, щелкая правой кнопкой мыши на различных объектах и на разметочной сетке позади них в окне модуля 1 ауои1 Ео11ог (Редактор планировки).
ГЛАВА 1О. Прикладные задачи В этой главе мы познакомим вас с примерами, которые показывают, как можно применять среду МАТОВ для решения задач из различных дисциплин. Большин. ство примеров представлены в виде М-файлов для среды МАТОВ. Эти примеры являются иллюстрациями изящных целостных документов, которые вы можете создать с помощью среды МАТЮКАВ. Мы рассмотрим следующие примеры: ° Освещение комнаты; ° Залоговые платежи; ° Моделирование Монте-Карло; ° Математическая генетика; ° Линейные экономические модели; ° Линейное программирование; ° Маятник Зб0'; ° 'Й Численное решение теплового уравнения; ° Й' Модель транспортного потока. Мы не будем объяснать все команды среды МАТОВ, которые будем использовать.