Свойства и структура скриптов.




Программирование в MATLAB. Основы m – языка.

Работа в MATLAB возможна в режиме командной строки и в программном режиме. Для программирования MATLAB имеет свой язык высокого уровня, называемый m – языком. m – язык имеет средства процедурного, модульного, функционального, объектно – ориентированного и визуального программирования и ориентирован на научно – технические расчеты. В m – языке доступны тысячи специальных математических функций и обширные средства визуализации вычислений. Визуализация обеспечивается многочисленными графическими функциями, средствами дескрипторной графики и визуальным моделированием в Simulink. m –язык относится к интерпретирующим языкам, то есть исполняемый exe-файл вне среды MATLAB не создается. Однако для программ на m – языке созданы компиляторы, транслирующие программы MATLAB в коды языков С, С++, JAVA, HTML, что решает задачу создания exe-файлов для программ, разработанных в среде MATLAB.

Исходный код в m – языке содержится в текстовых файлах с расширением.m, называемых m-файлами. m-файл создается встроенным в MATLAB редактором/отладчиком или любым другим редактором, поддерживающим формат ASCII. Редактор/отладчик выполняет синтаксический контроль создаваемого m-файла. Имя m-файла может содержать латинские строчные и прописные буквы, цифры и символ подчеркивания и начинается с буквы. Регистр букв различается. Редактор/отладчик может быть вызван одним из следующих способов:

- пункт меню File -> New;

- пункт меню Open;

- дублирующие указанные пункты меню пиктограммы на панели инструментов (см. всплывающие подсказки пиктограмм);

- из командной строки командой edit или edit имя файла;

- двойным щелчком по имени существующего файла в окне текущей папки Current Folder.

m-файл может быть скриптом (сценарием) или функцией.

Свойства и структура скриптов.

Скрипт – зафиксированная в виде m-файла последовательность операторов (команд). Предназначен для многократного выполнения этой последовательности. Скрипт имеет следующие свойства:

- не имеет входных аргументов и выходных параметров;

- создает переменные в рабочей области и использует переменные из рабочей области;

- в процессе выполнения не компилируется.

Скрипт имеет следующую структуру:

% Основной комментарий (первая строка)

% Дополнительный комментарий (несколько строк)

Тело скрипта, представляющее любые операторы m – языка и команды

MATLAB.

Основной комментарий выводится при выборе файла в окне Current Folder и при выполнении команды help имя каталога. Полный комментарий выводится при выполнении команды help имя файла. Знак % должен начинаться с первой позиции строки, иначе команда help имя файла не будет воспринимать комментарий. Комментарии в теле скрипта не выводятся. Имена скриптов нельзя использовать в качестве параметров функций, поскольку скрипты не возвращают значений. Скрипт может быть вызван по имени из командной строки, из другого скрипта, из тела функции.

Пример. Следующий скрипт создает рисунок графического решения задачи линейного программирования, в которой

целевая функция P=2x1+4x2 должна быть максимизирована

при ограничениях 3x1+4x2 <=1700;

2x1+5x2 <=1600;

x1>=0; x2>=0;

% Графическое решение задачи ЛП (основной коммент.)

% пример из лекции 2 (доплнительный коммент.)

%

hold on % указание выводить все построения в одно

% графическое окно (Figure 1 по умолчанию)

B=solve('3*x1+4*x2=1700','2*x1+5*x2=1600');

% функция solve возвращает решение системы

% уравнений, являющихся ее аргументами, в

% виде структуры с именем В. Поля сруктуры

% B.x1=300, B.x2=200 явл. точкой пересечения

% прямых 3*x1+4*x2=1700 и 2*x1+5*x2=1600

% (вершина В на графике, являющаяся оптимальным

% решением задачи)

plot([0 800],[320 0],'b')

plot([0 566.66 ],[425 0],'g')

plot([0 700],[350 0],'r')

% функции plot строят графики прямых

% 3*x1+4*x2=1700, 2*x1+5*x2=1600 и линию

% уровня целевой функции 2*x1+4*x2=1400 по

% точкам пересечения этих линий с осями x1, x2.

% первый аргумент функции plot – массив

% абсцисс, второй – массив ординат концов

% выводимого отрезка, третий – цвет линии.

%area([0 B.x1 566.66],[320 B.x2 0]) % функция area

% подобна функции plot, но закрашивает область

% между точками графика и осью абсцисс.

% В данной задаче результат вызова area и

% fill одинаков.

fill([0 0 B.x1 566.66],[0 320 B.x2 0],'y')

% функция fill строит замкнутый многоугольник

% по координатам его вершин и закрашивает его

% заданным цветом.

text(70,400,'3x1+4x2=1700','Rotation',-50,...

'FontSize',10,'Color','g');

text(600,100,'2x1+5x2=1600','Rotation',-31,...

'FontSize',10,'Color','b')

% функция text выводит строку текста в

% графическое окно. В данном вызове

% использованы следующие аргументы: 70,400 –

% координаты в пикселах первого выводимого

% символа строки; выводимый текст;

% 'Rotation',-50 указание угла наклона строки

% -50о; 'FontSize',10 – размер шрифта 10;

% 'Color','g' - цвет шрифта зеленый.

% Многоточие в конце строки (три и более точек)

% означает продолжение оператора на следующей

% строке

 

 

Рис. 1 Результат выполнения скрипта

 

 

Рис. 2 Завершение оформления рисунка с использованием графического редактора.

 

Пример. Построение ОДР (замкнутого многоугольника), грани которой не являются отрезками полуосей x1, x2.

Заданы координаты вершин 10,30; 40,60; 90,40; 50,20

 

fill([10 40 90 50], [30 60 40 20],[1 4 1 1])

 

[1 4 1 1]- вектор размерности, равной числу вершин, задающий палитру заливки.

 

 

Рис.3 Результат вызова функции fill.

 

После выполнения скрипта (пусть его имя, например, lpgraf.m) созданные им переменные остаются в рабочей области системы MATLAB.

Для того, чтобы их перечень отобразить в командном окне, следует ввести команду whos.

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: