Построение двух графиков в рамках одного окна
Приведем пример скрипта для построения двух графиков в рамках одного окна в MATLAB:
% скрипт, строящий два графика в рамках одного окна
%координаты точек для построения графика по оси абсцисс
x = 0 : 0.05 : 6*pi;
%координаты точек для построения графика по оси ординат
y1 = ( sin( 2 * x ) + 1 ) .* ( x .^ 2 );
y2 = x.^2;
% строим два графика
plot(x, y1, x, y2);
% заголовок графика
title('Построение двух графиков в рамках одного окна')
% легенда
legend('f1(x) = (sin(2*x)+1).*(x.^2)',' f2(x) = x.^2 ')
В результате выполнения данного скрипты появится следующее окно с графиком:
В простейшем случае для построения графиков используется функция plot, принимающая два входных аргумента, которыми являются векторы одинаковой длинны, задающие координаты точек для построения графика. Если возникает необходимость построить два графика на одной координатной плоскости, в функцию plot подставляются четыре входных аргумента. В первом аргументе содержится значение координат точек по оси абсцисс для первого графика, во втором — по оси ординат для первого графика, в третьем — по оси абсцисс для второго графика, во втором — по оси ординат для второго графика.
Для того чтобы задать заголовок графика используется функция title, принимающая заголовок в виде строки текста и выводящая его над графиком.
Функцию legend позволяет вывести легенду к графику. Данную функцию удобно использовать тогда, когда на одной координатной плоскости строится несколько графиков, т.е. в случаях подобных нашему примеру. Эта функция принимает подписи к графикам через запятую в виде текста.
Задание на лабораторную работу №3
1. Написать функцию f1, которая будет рассчитывать значение кусочно заданной функции (см. табл. 2.3, лабораторная работа №2). Входным параметром функции является скаляр – аргумент кусочно заданной функции. Выходным параметром функции является значение кусочно заданной функции в точке-аргументе. Если аргумент функции не принадлежит области определения функции, должно быть выведено соответствующее сообщение и работа функции должна быть остановлена. Текст функции сопроводить комментариями.
2. Написать программу-сценарий (скрипт), которая сформирует вектор x с использованием оператора двоеточия со значениями от xMin до xMax с шагом dx=0.1, где xMin и xMax – левая и правая границы интервала, на котором определена функция, соответственно; для каждого элемента созданного вектора x вычислит значения с использованием функции f1 и запишет результат в вектор y1; вызовет скрипт definition_anfun с определением анонимной функции f2 (см. табл. 1.3), для каждого элемента вектора x вычислит значения с использованием анонимной функции f2 и запишет результат в вектор y2, построит графики двух заданных функций в рамках одного окна, используя векторы x, y1 и y2, добавит к графику заголовок и легенду.
3. Весь написанный программный код необходимо сопроводить комментариями.
4. Используя результаты лабораторной работы №2, сделать выводы по использованию программ-сценариев (скриптов) и функций для решения одной и той же задачи.
Контрольные вопросы
1. Дайте определение понятиям «программа-сценарий (скрипт)», «функция» и «анонимная функция»? В чем их разница?
2. Какие рабочие области в MATLAB вы знаете? Дайте определение «локальной переменной».
3. Как написать комментарий в MATLAB?
4. Напишите синтаксис объявления функции. Приведите пример объявления и вызова функции.
5. В чем разница между фактическими и формальными параметрами функции?
6. Напишите синтаксис объявления анонимной функции. Приведите пример объявления и вызова функции.
7. Для чего нужно документирование функций и чем оно отличается от комментирования?
8. Дайте определение понятиям «отладка» и «точка останова».
9. Какие горячие клавиши режима отладки вы знаете?
10. Что выполняет функция error?