Mоделирование процессов и систем в Matlab (966709), страница 19
Текст из файла (страница 19)
О Кроме упомянутых ранее записей, любое полностью оформленное графическое окно (фигура) должно содержать такую дополнительную текстовую информацию: ° краткое сообщение об объекте исследования; ° математическую модель, положенную в основу осуществленных в программе вычислений с указанием имен параметров и переменных; ° информацию об использованных значениях параметров; ° информацию о полученных значениях некоторых вычисленных интегральных параметров; 2Ог Урок 2 в Программирование в среде МАТ(АВ ° информацию об имени М-файла использованной программы, имени исполнителя работы и дате проведения вычислительного эксперимента; м информацию об авторе использованной программы и организации, где он работает.
Чтобы выполнялось последнее требование, необходимо выделять в каждой фигуре (с помощью той же процедуры заЬр1 ос) место для вывода указанной текстовой информации. Разбивка графического окна на подокна Как следует из сказанного выше, при создании законченного графического инженерного документа в системе МАТ[.АВ необходимо использовать функцию зиЬр1ос (о ее применении рассказывалось в разделе «Дополнительные функции графического окнам урока 1). Рассмотрим, как выполняется разбивка графического окна на отдельные поля графиков и текстовое подокно. Допустим, требуется разбить все пале графического окна на три части так, чтобы в верхней трети окна находилось поле вывода текста, а в нижних двух третях — единое поле вывода графиков. Это можно осуществить так: О перед выводом текстовой информации в графическое окно следует воспользоваться командой ваЬр1ос(3.1,1), с помощью которой графический экран будет разделен на три одинаковые части по вертикали (подокна) и для последующего вывода будет использована верхняя часть (рис.
2.5, а); О чтобы вывести графики в графическое окно, введите команду зоЬр) о1(3, 1, [2 3) ), в результате выполнения которой графическое окно, как и ранее, разделится по вертикали на три подокна, но для вывода графической информации будет использовано пространство, занятое двумя нижними подокнами (обратите внимание, что подокна объединяются таким же образом, как элементы вектора в вектор-строку). Рассмотрим второй пример. Предположим, нам нужно создать четыре поля: три горизонтальных, в которых будут расположены графики один под другим, и одно вертикальное — для размещения текстовой информации: О разделите все пространство фигуры на 12 частей — три части по вертикали и четыре части по горизонтали; при этом подокна будут расположены так, как показано на рис. 2.5, б; О чтобы организовать вывод графиков в первое графическое подокно, воспользуйтесь командой зиЬр1ос(3.4.[1 2 3)), которая объединит падокна вр1, вр2 и врЗ в единое графическое подокно; О аналогично, выводу графиков во второе графическое подокно должно предшествовать обращение к команде зоЬр1ос(3.4.[5 б 7)), а выводу графиков в третье графическое подокно — обращение к команде ваЬр1ос(3.4.
[9 10 1Ц); Наконец, к оформлению текста можно приступить после обращения, имеюшего такой вид: зоЬр1оС(3.4.[4 8 12)). Графическое оформление результатов б Рнс. 2.5. Различные схемы разбивки графического окна !ыеод текста в графическое окно Если сформировать подокна, не осу)цествляя никаких операций по выводу графиков или текста, то в окне фигуры появится изображение пустых подокон.
Например, введем следующие команды: » зньр)ог(3.4.(5 Б 7)) » зоьр)ОС(3,4.1:3) » знЬР)от(3,4.9н11) » зьер)ог(3.4. (Я 3 )3)) В результате получим графическое окно, представленное на рис. 2.6. Вы видите, что в соответствующем подокне появилось изображение осей координат с обозначением делений по осям. Начальный диапазон изменений координат по обеим осям подокна установлен по умолчанию от О до Е Поле, предназначенное для вывода графиков, занимает не все пространство соответствующего подокна — остается свободное место для вывода заголовка графика, надписей по осям координат и др.
Для того чтобы вывести текст в одно из подокон, нужно сначала удалить из данного подокна изображение осей координат и нааписей на них. Это делается с помощью команды ах)з('огт'). Урон 2 ° Программирование в среде МАТтАВ Рмс.2.6. Результат действия грункцми зпЬрЬС Если вы примените данную команду, выполнив предыдущие, в окне фигуры исчеэнег иэображение координатных осей последнего подокна (рис. 2.7).
После этого можно начинать вывод текста в него. Рмс. 2.7. Резулыат выполнения команды ахтз('отг') Основной функцией, обеспечивающей вывод текста в графическое окно„является функция Ьехс. Обращение к ней имеет следующий вид: Ь - Сехс(х. у,'<текст>','гопзймпе','<наэзание крифта>'.. 'Гопс5тгае'.<разнер ври)та в пикселах>], 105 Графическое оформление результатов ГопС51хе'.10) Ьв - 11х(с>осд): Тт = Сн(4:6): Ы - СехИ-0.2.0.08.['Протранна 'ьргодгав].'ГопС51хе'.
10): Ы - Секс(-0.3.0.04.[' Расчеты провел' ьпазе].'ГопС5тхе'. 10): Ы - Сех((-0.3.0,[ьргзпй('Дд .Гк) ' ' лаге].'Гоп!5!хе'. 10): Ы = Сех((-0.3.-0.04.'- Ы - Секс(-0.3,-0.08.'Фга>пе. КР1. саш. Р50И'.'ГопС5!ае'.10): .'ЕапСЗзае'. 10>; Выполнение данного фрагмента приводит к появлению в окне фигуры изображе- ния, представленного на рис.
2.8. Данная функция осуществляет вывод 'конкретного текста определенным шрифтом указанного размера, начало текста находится в точке подокна с координатами х и у соответствующего поля графика подокна. При этом координаты х и у измеряются в единицах величин, откладываемык вдоль соответствующих осей графика подокна. Как мы уже знаем, указанные координаты изменяются в диапазоне 10...1]. Поэтому чтобы вывод текста начинался в точке внутри поля графика, его координаты х и у должны находиться в этом диапазоне. Однако можно использовать и несколько более широкий диапазон, учитывая то, что поле подокна больше поля его графика. Рассмотрим пример текстового оформления на фрагменте программы. ьоор)оС(3,4.1:3): ьыЬр>оС(3.4.5:7): ьоЬр>оС(3.4.9:11): ьиЬр>оИ3.4.[4:8:12]): ах1И'ой'): Д Прооедтра вывода данных в текстовое поле графического окна 01 [2 1 300 1 50]: 02 [ 0.1 0.02 -0.03 0 1 4 -1.5 2 0.1 -0.15 О 0]: 05 [0.001 0.01 15 16]: ьргодган - 'иьр1'; ьпаве - 'Лазарев Ю.Ф.': Ы Секс(-0.2,1,'Исходные паранетры:'.'ЕопС5!Се',12); П1 - Секс(0.0.95.'Гиротахонетров'.'ГопС51хе'.10): Ы - Сех((0.2,0.9.ьргтпС(('Н - Хд '.01(3».'Еап151зе'.
10); Ь1 Сех((-0.2.0.85.ьрг>пСГ('д - дд '.ОИ4)).'Еоп(5!ге'.10): Ы = Сехг(0.6.0.85.ьрг>пСЕ('С - дд '.01(5)).'ЕопС5тхе'. 10): Ь1 - Сех((-0.2,0.8.ьрг1пСГ( Ы> - дд '.01(1)),'ГопС5(хе'. 10): Ы - Секс(0.6.0.8.ьртяпсйЫ2 - Сд '.01(2>).'ЕотС51ае'.10); Ы - Сехс(0.0.75.'Вневних воздействий'.'Еоп(5!ге', 10): Ы - СехИ-О.2.0.7.ьр!Чпсй'рьСО - дд '.02(1)). Еопсб!Се'.10)! Ь1 - Секс(0.6,0.7.ьрг!пСГ('СеСО - дд '.02(2)>. ЕопС51ае'.10).- Ы - Сехг(0.2.0.ббжрг(пИ('йСО - дд '.02(3)).'Гопсбтзе'.10): Ы - Секс(-0.2.0.62лрг!псй 'рьн - Дд '.02(4)).'ГопС51хе'.10): Ы - Сехс(0.6.0.62.ьрг1пгй 'Сев - дд '.02(5)).'ГопС51хе'.10); Ы - Сект(0.2.0.58.ьрг1пСГ(' йэ - Дд ',02(б)), ЕопС51хе'. 10): Ь1 - Сехг(-0,2.0.54.ьрг!пСГ('парь - дд ',02(7)).'ЕопС51хе', 10): Ы - гехт(0.6.0.54,ьрг1пИ('свае - Дд '.02(8)).
ЕопС51ае'.10)! Ь1 " Сехг(0.2.0.5.ьрг!птй 'ом(! - Фд ',02(9)).'Еоп(5!зе'. 10): Ь1 - СехИ-0.2.0.4б.ьрг1пгй 'ерь - Дд '.02(10)).'ЕотС51ш'. 10); Ь1 - Секс(0.6,0.46.ьргтпСГ('есе - Дд '.02(11».'Гоп(5>ае'.10): Ь1 - Секс(0.2.0.42,ьрйпСГ('ей - Дд '.02(12)).'Гап(5!хе'.10): Ы - Сех((0.0.35,'Интегрирования'.'Еопгб!ге'.10.'Еоп(дпоег>1пе'.'оп'); П1 - СехИО.О.З.ьрг1псй'Ь - дд ' 05(1)).'ГопС51хе'.10): Ь1 - СехИ0,0.2о5,ьрг!пСГ('Ьрг - Дд '.05(2)).'ЕопС51хе'.10): Ь1 - Сехг(0.0.2.ьрг(пСГ('С - тд '.05(З)).
Гоп!5!Се',10): Ь1 - Секс(0,0.15,ьргтпСГ('С(1па> - Дд '.05(4)).'ГопС51зе'.10); Ь1 - Сехт(-0.3.0.12.' 106 Урон 2 ° Программнрованне в среде МАЦАВ Рнс. 2.8. Прнмер текстового оформления графического окна Создание фуннций от функций Для функций определенного типа некоторые алгоритмы являются общими. Поэтому для их программной реализации, единой для всех функций этого типа, необходимо применять алгоритм вычисления конкретной функции. Он может быть зафиксирован в виде конкретного файла-функции.
Чтобы более общий алгоритм мог использовать любую функцию, имя последней должно быль некоторой переменной, принимающей определенное значение (текстового имени файла-функции) только при обращении к основному алгоритму. Такие функции уже рассматривались нами ранее, в разделе «Функции функций». К ним принадлежат процедуры: О вычислений интеграла от функции, которые требуют указания имени М-фай- ла, содержащего вычисления значения подынтегральной функции; О численного интегрирования дифференциальных уравнений, использование которых требует указания имени М-файла, содержащего вычисления правых частей уравнений в форме Коши; О алгоритмов численного определения корней нелинейных алгебраических уравнений (нулей функций), где необходимо указывать имя файла функции, нуль которой отыскивается; О алгоритмов поиска минимума функции, которую, в свою очередь, надо зада- вать соответствующим М-файлом и т.