График по точкам матлаб. Построение графиков matlab

Построение графического интерфейса в системе Matlab


Введение

Matlab – это система инженерных и научных вычислений. Она обеспечивает математические вычисления, визуализацию научной графики программирование и моделирование процессов с использованием интуитивно понятной среды окружения, когда задачи и их решения могут быть представлены в нотации, близкой к математической. Наиболее известные области применения системы Matlab :

· математика и вычисления;

· разработка алгоритмов;

· вычислительный эксперимент, имитационное моделирование, макетирование;

· анализ данных, исследование и визуализация результатов;

· научная и инженерная графика;

· разработка приложений, включая графический интерфейс пользователя.

Основным объектом при программировании в среде Matlab является массив, для которого не требуется указывать размерность явно. Это позволяет решать многие вычислительные задачи, связанные с векторно-матричными формулировками.

Система Matlab – это одновременно и операционная среда и язык программирования. Пользователь может написать специализированные функции и программы, которые оформляются в виде М-файлов. По мере увеличения количества созданных программ возникают проблемы их классификации и тогда можно попытаться собрать родственные функции в специальные папки. Это приводит к концепции пакетов прикладных программ, которые представляют собой коллекции М-файлов для решения определенной задачи или проблемы.


C реда системы Matlab

Среда системы Matlab это совокупность интерфейсов, через которые пользователь поддерживают связь этой системой. Это: диалог посредством командной строки или графического интерфейса, просмотр рабочей области, редактор и отладчик М-файлов, работа с файлами и оболочкой DOS, экспорт и импорт данных, интерактивный доступ к справочной информации, динамическое взаимодействие с внешними системами Microsoft Word , Microsoft Excel и др. Реализуются эти интерфейсы через командное окно, инструментальную панель, системы просмотра рабочей области и путей доступа, редактор / отладчик М-файлов, специальные меню.

Пользовательский интерфейс носит дружественный характер и построен с учетом устоявшихся принципов программного обеспечения, разрабатываемого для операционной системы Windows .

В системе Matlab существует два вида м-файлов:

Скрипты – представляют последовательности команд (представляют собой процедуры);

Function– представляют собой функции с входными аргументами и выходными параметрами (значениями функции).

Но далее возникает необходимость многократного запуска файла программы при других, изменённых параметрах решаемой задачи. Возникает неудобство: в постоянном редактировании исходного текста программы и повторном или очередном её запуске. При этом важен механизм управления переменными, который бы обеспечивал удобный интерфейс между программой и пользователем. При решении других задач могут возникнуть трудности с визуализацией какого-либо процесса, то есть некоторая переменная изменяться динамически в процессе решения поставленной задачи.

Все эти и другие трудности, возможно, решить при использовании графического интерфейса пользователя. (GUI– GraphicalUserInterface)

Основные принципы построения графического интерфейса

Использование графического интерфейса позволяет пользователю сделать программу более универсальной.

Как и любой процесс проектирования, процесс построения графического интерфейса пользователя можно разбить на следующие этапы:

1. Постановка задачи,

2. Создание формы интерфейса и создание на неё элементов управления.

3. Написание кода программы и кода обработки событий.

Этапы построения графического интерфейса пользователя

1. На первом этапе проводиться анализ поставленной задачи и определяется количество и состав элементов управления необходимых для решения задачи.

2. На втором этапе создаётся форма графического интерфейса и на ней создаются и размещаются элементы управления. Здесь же описываются их свойства.

Задавать расположение и выравнивать элементы на форме описывать их свойства можно "вручную", но для удобства и быстроты используют редактор выравнивания объектов (TheAlignmentTool) и редактора свойств (ThePropertyEditor).

Существует два способа создания формы и элементов управления, а так же задания или изменения их свойств:

Использование команды WORKSPACE (то есть использование команды операционной среды MATLAB).

Использование средств панели инструментов – совокупности средств для быстрого создания GUI (TheControlPanel).

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

Эти команды можно использовать как для написания кода, создающего графический интерфейс пользователя, так и использовать для управления свойствами элементов управления из тела m-файлов. Благодаря чему мы можем получить визуализацию нашего процесса вычисления.

На практике всё более склоняются ко второму способу создания графического интерфейса с элементами управления. Это объясняется тем, что при использовании панели управления с её редакторами свойств, событий, выравнивания очень удобно работать, и создавать GUI значительно быстрее, чем в первом случае.

3. На третьем этапе создания графического интерфейса пользователя (GUI) пишется код основной программы вычисления и код для обработки событий.

Код основной программы вычисления, пишется на языке программирования операционной среды Matlab, в виде m-файла. Созданные m-файлы закрепляются за событием какого-нибудь элемента управления или формы.

При описании свойств элементов управления события описываются в m-файле:

а) либо при создании каждого элемента управления описываем его свойства и сразу описываем действие событие;

б) либо описываем обработку события для каждого элемента при помощи редактора событий (ThePropertyEditor).

Начало выполнения действий по созданию графического интерфейса

Редактор GUIDE (руководство) вызывается командой guideиз командного окна или путем выполнения цепочки команд главного меню File (Файл) – New (Новый) – GUI (Графический Интерфейс).

Две странички, присутствующие на стартовой заставке (рис. 1), позволяют начать проектирование нового интерфейса (вкладка – CreateNewGUI, (Создать новый интерфейс)) или воспользоваться ранее созданным интерфейсом (вкладка – OpenExistingGUI (Открыть существующий интерфейс)). Дело в том, что описание формы приложения вместе с расположенными на ней интерфейсными компонентами может быть сохранено в файле с расширением fig. Если на диске хранится нечто похожее на наше будущее приложение, существующим файлом можно воспользоваться с целью экономии времени.

Начальная конструктора графического интерфейса (GUIDE) (рис. 1)

Мне было предложено рассмотреть приложение, воспроизводящее график одной из пяти функций в зависимости от выбранной строки раскрывающегося меню.

Окно редактирования формы (рис. 2)


Окно редактирования m-кода формы (рис. 3)

Это код, описывающий поведение сохраненной нами формы. В нем содержатся процедуры и функции, которые позволяют форме быть работоспособной.


Окно программы, запущенной на выполнение (рис. 4)

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

Выбирая различные пункты в выпадающем меню, а затем, нажимая кнопку, вы увидите различные варианты получаемых графиков.

Алгоритм создания интерфейса

1. Вызвать панель управления.

1) Создать новую форму интерфейса или загрузить существующую.

2) Перейти в режим редактирования формы.

3) Натаскать на форму необходимые элементы управления.

2. Вызвать редактор свойств.

2) Выбрать нужное свойство и изменить его.

3. Вызвать редактор событий.

1) Выбрать элемент управления.

2) Написать код обработки события.

4. Вызвать редактор выравнивания объектов.

1) Выбрать элемент управления иди группу элементов.

2) Выбрать метод выравнивания.

5. Перейти в окно панели управления и активизировать интерфейс.

Литература

1. Дьяконов, В.П. MATLAB 6.5 SP1/7 + Simulink 5/6 в математике и моделировании / В.П. Дьяконов. – М.: СОЛОН-Пресс, 2005. – 576 с.

2. Дьяконов, В.П. MATLAB 6.5 SP1/7 + Simulink 5/6. Основы применения / В.П. Дьяконов – М.: СОЛОН-Пресс, 2005. – 800 с.

3. Дьяконов, В.П. MATLAB 6.5 SP1/7 + Simulink 5/6. Работа с изображениями и видеопотоками / В.П. Дьяконов. – М.: СОЛОН-Пресс, 2005. – 400 с.

4. Ермачкова Ю.А. Проектирование интерфейса в среде GUIDEMATLAB / Ю.А. Ермачкова // Современные информационные технологии в экономике, управлении и образовании. Сборник материалов межвузовской научно-практической конференции, посвященной 175 – летию потребительской кооперации России и 5 – летию филиала. – М.: Информационно-внедренческий центр «Маркетинг», 2006. – С. 35–37.


Приложение

function varargout = kursovaya(varargin)

% KURSOVAYA M-file for kursovaya.fig

% KURSOVAYA, by itself, creates a new KURSOVAYA or raises the existing

% H = KURSOVAYA returns the handle to a new KURSOVAYA or the handle to

% the existing singleton*.

% KURSOVAYA ("CALLBACK", hObject, eventData, handles,…) calls the local

% function named CALLBACK in KURSOVAYA.M with the given input arguments.

% KURSOVAYA ("Property", "Value",…) creates a new KURSOVAYA or raises the

% existing singleton*. Starting from the left, property value pairs are

Начиная с версии 4.0 в состав системы MATLAB входит мощная графическая подсистема, которая поддерживает как средства визуализации двумерной и трехмерной графики на экран терминала, так и средства презентационной графики. Следует выделить несколько уровней работы с графическими объектами. В первую очередь это команды и функции, ориентированные на конечного пользователя и предназначенные для построения графиков в прямоугольных и полярных координатах, гистограмм и столбцовых диаграмм, трехмерных поверхностей и линий уровня, анимации. Графические команды высокого уровня автоматически контролируют масштаб, выбор цветов, не требуя манипуляций со свойствами графических объектов. Соответствующий низкоуровневый интерфейс обеспечивается дескрипторной графикой, когда каждому графическому объекту ставится в соответствие графическая поддержка (дескриптор), на который можно ссылаться при обращении к этому объекту. Используя дескрипторную графику, можно создавать меню, кнопки вызова, текстовые панели и другие объекты графического интерфейса.

Из-за ограниченного объема данного справочного пособия в него включены только графические команды и функции с минимальными элементами дескрипторной графики. Заинтересованному читателю следует обратиться к документации по системе MATLAB, и в первую очередь к только что вышедшей из печати книге “Using MATLAB Graphics” (Natick, 1996).

Элементарные графические функции системы MATLAB позволяют построить на экране и вывести на печатающее устройство следующие типы графиков: линейный, логарифмический, полулогарифмический, полярный.

Для каждого графика можно задать заголовок, нанести обозначение осей и масштабную сетку.

Двумерные графики

  • PLOT - график в линейном масштабе
  • LOGLOG - график в логарифмическом масштабе
  • SEMILOGX, SEMILOGY - график в полулогарифмическом масштабе
  • POLAR - график в полярных координатах

Трехмерные графики

В системе MATLAB предусмотрено несколько команд и функций для построения трехмерных графиков. Значения элементов числового массива рассматриваются как z-координаты точек над плоскостью, определяемой координатами x и y. Возможно несколько способов соединения этих точек. Первый из них - это соединение точек в сечении (функция plot3), второй - построение сетчатых поверхностей (функции mesh и surf). Поверхность, построенная с помощью функции mesh, - это сетчатая поверхность, ячейки которой имеют цвет фона, а их границы могут иметь цвет, который определяется свойством EdgeColor графического объекта surface. Поверхность, построенная с помощью функции surf, - это сетчатая поверхность, у которой может быть задан цвет не только границы, но и ячейки; последнее управляется свойством FaceColor графического объекта surface. Уровень изложения данной книги не требует от читателя знания объектно-ориентированного программирования. Ее объем не позволяет в полной мере описать графическую подсистему, которая построена на таком подходе. Заинтересованному читателю рекомендуем обратиться к документации по системе MATLAB, и в первую очередь к только что вышедшей из печати книге Using MATLAB Graphics (Natick, 1996).

  • PLOT3 - построение линий и точек в трехмерном пространстве
  • MESHGRID - формирование двумерных массивов X и Y
  • MESH, MESHC, MESHZ - трехмерная сетчатая поверхность
  • SURF, SURFC - затененная сетчатая поверхность
  • SURFL - затененная поверхность с подсветкой
  • AXIS - масштабирование осей и вывод на экран
  • GRID - нанесение сетки
  • HOLD - управление режимом сохранения текущего графического окна
  • SUBPLOT - разбиение графического окна
  • ZOOM - управление масштабом графика
  • COLORMAP - палитра цветов
  • CAXIS - установление соответствия между палитрой цветов и масштабированием осей
  • SHADING - затенение поверхностей
  • CONTOURC - формирование массива описания линий уровня
  • CONTOUR - изображение линий уровня для трехмерной поверхности
  • CONTOUR3 - изображение трехмерных линий уровня

Надписи и пояснения к графикам

  • TITLE - заголовки для двух- и трехмерных графиков
  • XLABEL, YLABEL, ZLABEL - обозначение осей
  • CLABEL - маркировка линий уровня
  • TEXT - добавление к текущему графику текста
  • GTEXT - размещает заданный текст на графике с использованием мыши
  • LEGEND - пояснение к графику
  • COLORBAR - шкала палитры

Специальная графика

Раздел специальной графики включает графические команды и функции для построения столбцовых диаграмм, гистограмм, средств отображения векторов и комплексных элементов, вывода дискретных последовательностей данных, а также движущихся траекторий как для двумерной, так и для трехмерной графики. Этот раздел получил свое дальнейшее развитие в версии системы MATLAB 5.0, где специальные графические средства улучшены и существенно расширены.

3. Трёхмерная графика .

Графики функций двух переменных представляют из себя куски поверхностей, нависающие над областями определения функций. Отсюда ясно, что изображение графиков функций двух переменных требует реализации "трёхмерной графики" на пл оском экране дисплея компьютера.

Высокоуровневая графическая подсистема MATLABа автоматически реализует трёхмерную графику без специальных усилий со стороны пользователя. Пусть в точке с координатами x1,y1 вычислено значение функции z=f(x,y) и оно равно z1. В некоторой другой точке (то есть при другом значении аргументов) x2,y2 вычисляют значение функции z2. Продолжая этот процесс, получают массив (набор) точек (x1,y1,z1), (x2,y2,z2), … (xN,yN,zN) в количестве N штук, расположенных в трёхмерном пространстве. Специальные функции системы MATLAB проводят через эти точки гладкие поверхности и отображают их проекции на плоский дисплей компбютера.

Чаще всего точки аргументов расположены в области определения функции регулярно в виде прямоугольной сетки (то есть матрицы). Такая сетка точек порождает две матрицы одной и той же структуры: первая матрица содержит значения первых координат этих точек (x - координат), а вторая матрица содержит значения вторых координат (y - координат). Обозначим первую матрицу как X, а вторую - как Y. Есть ещё и третья матрица - матрица значений функции z=f(x,y)при этих аргументах. Эту матрицу обозначим буквой Z.

Простейшей функцией построения графика функции двух переменных в системе MATLAB является функция

plot3(X , Y , Z)

где X, Y и Z - матрицы одинаковых размеров, смысл которых мы только что объяснили.

В системе MATLAB имеется специальная функция для получения двумерных массивов X и Y по одномерным массивам x, y.

P P> Пусть по оси x задан диапазон значений в виде вектора

u = -2: 0.1: 2

а по оси y этот диапазон есть

v = -1: 0.1: 1

Для получения матриц X и Y, представляющих первые и вторые координаты получающейся прямоугольной сетки точек используют специальную функцию системы MATLAB:

[ X , Y ] = meshgrid(u, v)

Как мы видим, эта функция получает на входе два одномерных массива (вектора), представляющие массивы точек на осях координат, и возвращает сразу два искомых двумерных массива. На прямоугольной сетке точек вычисляем значения функции, например функции exp:

Z = exp(- X.^2 - Y.^2)

Наконец, применяя описанную выше функцию plot3,получаем следующее изображение трёхмерного графика этой функции:

Из этого рисунка видно, что функция plot3 строит график в виде набора линий в пространстве, каждая из которых является сечением трёхмерной поверхности плоскостями, параллельными плоскости yOz. По-другому можно сказать, что каждая линия получается из отрезков прямых, соединяющих набор точек, координаты которых берутся из одинаковых столбцов матриц X, Y и Z. То есть, первая линия соответствует первым столбцам матриц X, Y Z; вторая линия - вторым столбцам этих матриц и так далее.

Для построения трёхмерных линий, задаваемых параметрически применяется другая форма вызова функции plot3:

plot3(x, y, z)

где x, y и z являются одномерными массивами координат точек, которые и нужно последовательно соединить отрезками прямых. Например, следующий фрагмент кода

t = 0: pi/50: 10*pi ;

x = sin(t);

y = cos(t);

plot3(x , y , t);

grid on

где применена известная по плоским графикам команда

grid on

для проставления сетки координатных значений в области построения графика (также допустимо использовать команды и функции по оформлению графиков, ранее рассмотренные для "плоского" случая), позволяет построить винтовую линию, изображение которой показано на следующем рисунке:

Помимо этой простейшей функции система MATLAB располагает ещё рядом функций, позволяющих добиваться большей реалистичности в изображении трёхмерных графиков. Это функции mesh, surf и surfl.

Функция mesh соединяет вычисленные соседние точки поверхности графика отрезками прямых и показывает в графическом окне системы MATLAB плоскую проекцию такого объёмного "каркасно-ребристого" (по-английски зовётся wireframe mesh) тела. Вместо ранее показанного при помощи функции plot3 графика функции

exp(- X.^2 - Y.^2)

можно получить вот такое изображение

Для лучшего восприятия "объёмности" изображения разные рёбра автоматически окрашиваются в разные цвета. Кроме того (в отличие от функции plot3) осуществляется удаление невидимых линий. Если вы считаете, что изображённое ребристое тело является прозрачным и не должно скрывать задних линий, то можно ввести команду hidden off , после чего такие линии появятся на изображении. Более плотного изображения поверхности можно добиться, если вместо

функции mesh применить функцию surf(X, Y, Z).

В результате получается следующее изображение представляющее плотную (непрозрачную) сетчатую поверхность, причём отдельные ячейки (грани) этой сетчатой поверхности (плоские четырёхугольники) автоматически окрашиваются в разные цвета.

С помощью функции surf получаются хотя и искусственно раскрашенные, но весьма наглядные изображения. Если же мы хотим добиться более естественных и объективных способов окрашивания поверхностей, то следует использовать функцию surfl.

Функция surfl трактует поверхность графика как материальную поверхность с определёнными физическими свойствами по отражению света. По умолчанию задаётся некоторый источник света, освещающий такую материальную поверхность, после чего рассчитываеются траектории отражённых лучей, попадающих в объектив условной камеры. Изображение в такой камере и показывается в графическом окне системы MATLAB.

Так как разные материалы по-разному отражают падающие лучи, то можно подобрать некоторый материал, чтобы получить наилучшее (с точки зрения пользователя) изображение. В частности, можно использовать функцию

colormap(copper)

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

surfl(X, Y, Z)

вместо surf(X,Y,Z) приводит к получению очень реалистически выглядящего и очень наглядного графика:

Можно с такого графика убрать чёрные линии, изображающие рёбра, а также добиться ещё более плавного перехода освещения поверхности, если выполнить команду

shading interp

означающую, что теперь цвет (освещённость) будет меняться даже внутри отдельных граней (ячеек). В итоге будет получаться совсем уж реальное изображение некоторой объёмной фигуры. Лучше это или хуже для задачи изображения графиков функций двух переменных - судить конкретному пользователю.

MatLab предоставляет богатый инструментарий по визуализации данных. Используя внутренний язык, можно выводить двумерные и трехмерные графики в декартовых и полярных координатах, выполнять отображение изображений с разной глубиной цвета и разными цветовыми картами, создавать простую анимацию результатов моделирования в процессе вычислений и многое другое.

3.1. Функция plot

Рассмотрение возможностей MatLab по визуализации данных начнем с двумерных графиков, которые обычно строятся с помощью функции plot(). Множество вариантов работы данной функции лучше всего рассмотреть на конкретных примерах.

Предположим, что требуется вывести график функции синуса в диапазоне от 0 до . Для этого зададим вектор (множество) точек по оси Ox, в которых будут отображаться значения функции синуса:

В результате получится вектор столбец со множеством значений от 0 до и с шагом 0,01. Затем, вычислим множество значений функции синуса в этих точках:

и выведем результат на экран

В результате получим график, представленный на рис. 3.1.

Представленная запись функции plot() показывает, что сначала записывается аргумент со множеством точек оси Ох, а затем, аргумент со множеством точек оси Oy. Зная эти значения, функция plot() имеет возможность построить точки на плоскости и линейно их интерполировать для придания непрерывного вида графика.

Рис. 3.1. Отображение функции синуса с помощью функции plot().

Функцию plot() можно записать и с одним аргументом x или y:

plot(x);
plot(y);

в результате получим два разных графика, представленные на рис. 3.2.

Анализ рис. 3.2 показывает, что в случае одного аргумента функция plot() отображает множество точек по оси Oy, а по оси Оx происходит автоматическая генерация множества точек с единичным шагом. Следовательно, для простой визуализации вектора в виде двумерного графика достаточно воспользоваться функцией plot() с одним аргументом.

Для построения нескольких графиков в одних и тех же координатных осях, функция plot() записывается следующим образом:

x = 0:0.01:pi;
y1 = sin(x);
y2 = cos(x);
plot(x,y1,x,y2);

Результат работы данного фрагмента программы представлен на рис. 3.3.

Рис. 3.2. Результаты работы функции plot() с одним аргументом:

а – plot(x); б – plot(y).

Рис. 3.3. Отображение двух графиков в одних координатных осях.

Аналогичным образом можно построить два графика, используя один аргумент функции plot(). Предположим, что есть два вектора значений

y1 = sin(x);
y2 = cos(x);

которые требуется отобразить на экране. Для этого объединим их в двумерную матрицу

в которой столбцы составлены из векторов y1 и y2 соответственно. Такая матрица будет отображена функцией

plot(); % апострофы переводят вектор-строку
% в вектор-столбец

в виде двух графиков (рис. 3.4).

Рис. 3.4. Отображение двумерной матрицы в виде двух графиков.

Два вектора в одних осях можно отобразить только в том случае, если их размерности совпадают. Когда же выполняется работа с векторами разных размерностей, то они либо должны быть приведены друг к другу по числу элементов, либо отображены на разных графиках. Отобразить графики в разных координатных осях можно несколькими способами. В самом простом случае можно создать два графических окна и в них отобразить нужные графики. Это делается следующим образом:

x1 = 0:0.01:2*pi;
y1 = sin(x1);

x2 = 0:0.01:pi;
y2 = cos(x2);


figure; % создание 2-го графического окна
plot(x2, y2); % рисование 2-го графика во 2-м окне

Функция figure, используемая в данной программе, создает новое графическое окно и делает его активным. Функция plot(), вызываемая сразу после функции figure, отобразит график в текущем активном графическом окне. В результате на экране будут показаны два окна с двумя графиками.

Неудобство работы приведенного фрагмента программы заключается в том, что повторный вызов функции figure отобразит на экране еще одно новое окно и если программа будет выполнена дважды, то на экране окажется три графических окна, но только в двух из них будут актуальные данные. В этом случае было бы лучше построить программу так, чтобы на экране всегда отображалось два окна с нужными графиками. Этого можно достичь, если при вызове функции figure в качестве аргумента указывать номер графического окна, которое необходимо создать или сделать активным, если оно уже создано. Таким образом, вышеприведенную программу можно записать так.

x1 = 0:0.01:2*pi;
y1 = sin(x1);

x2 = 0:0.01:pi;
y2 = cos(x2);

figure(1); %создание окна с номером 1
plot(x1, y1); % рисование первого графика
figure(2); % создание графического окна с номером 2
plot(x2, y2); % рисование 2-го графика во 2-м окне

При выполнении данной программы на экране всегда будут отображены только два графических окна с номерами 1 и 2, и в них показаны графики функций синуса и косинуса соответственно.

В некоторых случаях большего удобства представления информации можно достичь, отображая два графика в одном графическом окне. Это достигается путем использования функции subplot(), имеющая следующий синтаксис:

subplot(<число строк>, <число столбцов>, <номер координатной оси>)

Рассмотрим пример отображения двух графиков друг под другом вышеприведенных функций синуса и косинуса.

x1 = 0:0.01:2*pi;
y1 = sin(x1);

x2 = 0:0.01:pi;
y2 = cos(x2);

figure(1);
subplot(2,1,1); % делим окно на 2 строки и один столбец
plot(x1,y1); % отображение первого графика
subplot(2,1,2); % строим 2-ю координатную ось
plot(x2,y2); % отображаем 2-й график в новых осях

Результат работы программы показан на рис. 3.5.

Аналогичным образом можно выводить два и более графиков в столбец, в виде таблицы и т.п. Кроме того, можно указывать точные координаты расположения графика в графическом окне. Для этого используется параметр position в функции subplot():

subplot(‘position’, );

где left – смещение от левой стороны окна; bottom – смещение от нижней стороны окна; width, height – ширина и высота графика в окне. Все эти переменные изменяются в пределах от 0 до 1.

Рис. 3.5. Пример работы функции subplot.

Ниже представлен фрагмент программы отображения графика функции синуса в центре графического окна. Результат работы показан на рис. 3.6.

x1 = 0:0.01:2*pi;
y1 = sin(x1);

subplot(‘position’, );
plot(x1,y1);

В данном примере функция subplot() смещает график на треть от левой и нижней границ окна и рисует график с шириной и высотой в треть графического окна. В результате, получается эффект рисования функции синуса по центру основного окна.

Таким образом, используя параметр position можно произвольно размещать графические элементы в плоскости окна.

Рис. 3.6. Пример работы функции subplot с параметром position.

Узнайте о тонкостях работы в MATLAB.

  • Оператор «точка с запятой»: если команда заканчивается знаком ‘;’, тогда результат данной операции не будет отображаться на экране. Это очевидно, когда есть небольшое определение, например, y = 1. Проблема же возникает, когда необходимо создать матрицу большой размерности. Знак ‘;’ не нужен тогда, когда вывод необходим для пользователя, например, при работе с графикой.
  • «Команда очистки»: есть несколько полезных команд, которые могут быть вызваны из командного окна. Наберите «clear» после знака «>>». Это очистит все текущие переменные, что может помочь при обнаружении странного результата. Также можно написать «clear» и имя переменной, чтобы очистить значение конкретной переменной.
  • «Типы переменных»: единственным типом переменных в MATLAB является массив. Это означает, что переменные устроены в виде списка значений. Наиболее простым списком значений является одно число. В случае с MATLAB не нужно указывать размер массива при создании переменной. Чтобы присвоить переменной значение одного числа, наберите, к примеру, z =1. Если вы захотите добавить значение для z, просто введите z = 3. Вы можете обратиться к любому значению в массиве с помощью записи z[i], где i – номер позиции в массиве. Итак, если вам нужно получить значение 3 из z, то необходимо просто набрать z.
  • «Циклы»: циклы используются тогда, когда действие необходимо выполнить несколько раз. В MATLAB есть 2 типа циклов: цикл «for» и цикл «while». Обе конструкции взаимозаменяемы, однако, бесконечный цикл проще создать конструкцией «while», чем «for». Признаком бесконечного цикла является то, что на вывод поступают только те данные, которые находятся внутри цикла.
  • «Циклы for»: циклы for в MATLAB имеют вид: "for i = 1:n / do действия / end" (обратный слеш означает переход на новую строку). Этот цикл означает «совершить действие» n раз. Итак, если в цикле записано «вывести «Привет» », и количество интерпретаций равно 5, то будет напечатано «Привет» 5 раз.
  • «Циклы while»: в MATLAB имеют вид: "while выражение истинно / do действия / end". Это значит, что действие выполняется, пока выражение истинно. Обычно в теле цикла имеется инструкция, которая меняет значение логического выражения на «false». Чтобы сделать цикл while из цикла for нужно написать "while i<=n / do действия / end".
  • «Вложенные циклы»: цикл вложенный, если он находится внутри другого цикла. Это выглядит примерно так: "for i = 1:5 / for j = 1:5 / do действия / end / end". Пять раз будет выполнено действие по счетчику j, затем значение i увеличится на единицу, снова будет 5 раз выполнено действие по счетчику j и т.д.
  • Для получения более подробной информации по любой части данной статьи или MATLAB в целом, посетите