Цифровая обработка сигналов
Выбери формат для чтения
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Литература:
А.Б. Сергиенко ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ
В.П. Дьяконов MATLAB 6/6.1/6.5 Simulink 4/5 в математике и моделировании
MATLAB в роли калькулятора
Система MATLAB создана таким образом, что любые (подчас весьма сложные) вычисления можно выполнять в режиме прямых вычислений, то есть без подготовки программы. Работа с системой в режиме прямых вычислений носит диалоговый характер и происходит по правилу «задал вопрос, получил ответ». Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его (если нужно) в командной строке и завершает ввод нажатием
клавиши ENTER.
» 2+3
ans=
5
» sin(l)
ans=
0.8415
Из таких примеров можно сделать некоторые поучительные выводы:
• для указания ввода исходных данных используется символ »;
• данные вводятся с помощью простейшего строчного редактора;
• для блокировки вывода результата вычислений некоторого выражения после него надо установить знак ; (точка с запятой);
• если не указана переменная для значения результата вычислений, то MATLAB назначает такую переменную с именем ans;
• знаком присваивания является привычный математикам знак равенства =, а не комбинированный знак :=, как во многих других языках
Следующий пример иллюстрирует применение системы MATLAB для выполнения простых векторных операций.
» V=[l 2 3 4]
V =
1 2 3 4
» sin(V) ans =
0.8415 0.9093 0.1411 -0.7568
» 3*V
ans =
3 6 9 12
» V+2
ans =
3 4 5 6
»
В этом примере задается четырехэлементный вектор V со значениями элементов 1, 2, 3 и 4. Далее вычисляются функции синуса и экспоненты с аргументом в виде вектора, а не скаляра. Две записи для вектора — V=[l 2 3 4] и V=[1,2,3,4] — являются идентичными. Таким образом, векторы задаются списком своих элементов,
разделяемых пробелами или запятыми. Список заключается в квадратные скобки. Для выделения п-го элемента вектора V используется выражение V(n). Оно задает соответствующую индексированную переменную. Вычисление sin(V) и exp(V), где V — вектор, результат вычислений будет вектором того же размера, что и аргумент V, но элементы возвращаемого вектора будут синусами или экспонентами от элементов вектора V.
Понятие о математическом выражении
Центральным понятием всех математических систем является математическое выражение. Оно задает то, что должно быть вычислено в численном (реже символьном) виде. Вот примеры простых математических выражений:
2+3
2.301*sin(x)
4+ехр(3)/5
sqrt(y)/2
sin(pi/2)
Математические выражения строятся на основе чисел, констант, переменных, операторов, функций и разных спецзнаков. Ниже даются краткие пояснения сути этих понятий.
Действительные и комплексные числа
Числа можно считать константами, имена которых совпадают с их значениями. Числа используются в общепринятом представлении о них. Они могут быть целыми, дробными, с фиксированной и плавающей точкой. Возможно представление чисел в хорошо известном научном формате с указанием мантиссы и порядка числа.
Ниже приводятся примеры представления чисел:
0 2 -3 2.301 0.00001 123.456е-24 -234.456е10
Как нетрудно заметить, в мантиссе чисел целая часть отделяется от дробной не запятой, а точкой, как принято в большинстве языков программирования. Для отделения порядка числа от мантиссы используется символ е. Знак «плюс» у чисел не проставляется, а знак «минус» у числа называют унарным минусом. Пробелы между символами в числах не допускаются.Числа могут быть комплексными: z=Rе(x)+Im(x)*i. Такие числа содержат действительную Re(z) и мнимую Im(z) части. Мнимая часть имеет множитель i или j, означающий корень квадратный из -1:
3i
2j
2+3i
-3.141i
-123.456+2.7e-3i
Функция real (z) возвращает действительную часть комплексного числа, Re(z), a функция imag(z) — мнимую, Im(z). Для получения модуля комплексного числа используется функция abs(z), а для вычисления фазы — angle(Z). Ниже даны простейшие примеры работы с комплексными числами:
»i
ans=
0 +1.0000i
» j
ans =
0 + 1.0000i
» z=2+3i
z =
2.0000 + 3.0000i
» abs(z)
ans =
3.6056
» real(z)
ans=
2
» imag(z)
ans =
3
» angle(z)
ans =
0.9828
Константы и системные переменные
Константа — это предварительно определенное числовое или символьное значение, представленное уникальным именем. Числа (например 1, -2 и 1.23) являются безымянными числовыми константами. Другие виды констант в MATLAB принято назвать системными переменными, поскольку, с одной стороны, они задаются системой при ее загрузке, а с другой — могут переопределяться. Основные системные переменные, применяемые в системе MATLAB, указаны ниже:
• i или j — мнимая единица (корень квадратный из -1);
• pi - число п - 3.1415926...;
• eps — погрешность операций над числами с плавающей точкой (2-52);
• realmin — наименьшее число с плавающей точкой (2-1022);
• realmax — наибольшее число с плавающей точкой (21023);
• inf — значение машинной бесконечности;
• ans — переменная, хранящая результат последней операции и обычно вызывающая его отображение на экране дисплея;
• NaN — указание на нечисловой характер данных (Not-a-Number).
Вот примеры применения системных переменных:
»
2*pi ans =
6.2832
» eps
ans =
2.2204е-016
» real min
ans=
2.2251e-308
» realmax
ans=
1.7977e+308
» 1/0
Warning: Divide by zero,
ans=
Inf
» 0/0
Warning: Divide by zero,
ans =
NaN
Как отмечалось, системные переменные могут переопределяться. Можно задать системной переменной eps иное значение, например eps=0.0001. Однако важно то, что их значения по умолчанию задаются сразу после загрузки системы. Поэтому неопределенными в отличие от обычных переменных системные переменные не могут быть никогда.
Символьная константа — это цепочка символов, заключенных в апострофы, например:
'Привет'
'2+3'
Если в апострофы помещено математическое выражение, то оно не вычисляется и рассматривается просто как цепочка символов. Однако с помощью специальных функций преобразования символьные выражения могут быть преобразованы в вычисляемые.
Переменные и присваивание им значений
Переменные — это имеющие имена объекты, способные хранить некоторые, обычно разные по значению, данные. В зависимости от этих данных переменные могут быть числовыми или символьными, векторными или матричными.В системе MATLAB можно задавать переменным определенные значения. Для этого используется операция присваивания, вводимая знаком
равенства =
Имя_переменной =Выражение
Типы переменных заранее не декларируются. Они определяются выражением, значение которого присваивается переменной. Так, если это выражение — вектор или матрица, то переменная будет векторной или матричной. Имя переменной (ее идентификатор) может содержать сколько угодно символов, но запоминается и идентифицируется только 31 начальный символ. Имя любой переменной не должно совпадать с именами других переменных, функций и процедур системы, т. е. оно должно быть уникальным. Имя должно начинаться с буквы, может содержать буквы, цифры и символ подчеркивания _. Недопустимо включать в имена переменных пробелы и специальные знаки, например +,.-, *, / и т. д., поскольку в этом случае правильная интерпретация выражений становится невозможной. Переменные могут быть обычными и индексированными, то есть элементами векторов или матриц (см. выше). Могут использоваться и символьные переменные, причем символьные значения заключаются в апострофы, например s='Demo'.
Уничтожение определений переменных
В памяти компьютера переменные занимают определенное место, называемое рабочей областью (workspace). Для очистки рабочей области используется функция clear в разных формах, например:
clear — уничтожение определений всех переменных;
clear x — уничтожение определения переменной х;
clear a, b, с — уничтожение определений нескольких переменных.
Уничтоженная (стертая в рабочей области) переменная становится неопределенной. Использовать неопределенные переменные нельзя, и такие попытки будут сопровождаться выдачей сообщений об ошибке. Приведем примеры задания и уничтожения переменных:
» x=2*pi
х =
6.2832
» V=[l 2345]
V =
12345
» MAT
??? Undefined function or variable 'MAT'.
» MAT=[1 2 3 4; 5 6 7 8]
MAT=
1234
5678
» clear V
» V
??? Undefined function or variable 'V'.
Операторы и функции
Оператор — это специальное обозначение для определенной операции над данными — операндами. Например, простейшими арифметическими операторами являются знаки суммы +, вычитания -, умножения * и деления /. Операторы используются совместно с операндами. Например, в выражении 2+3 знак + является оператором сложения, а числа 2 и 3 — операндами. Следует отметить, что операторы . * и . / означают соответственно поэлементное умножение и поэлементное деление массивов. Следующие примеры поясняют сказанное на примере операций с векторами:
» Vl=[2 4 6 8]
V1=
2468
» V2=[l 2 3 4]
V2 =
1234
» V1.*V2
ans=
2 8 18 32
» V1./V2
ans =
2 2 2 2
Функции — это имеющие уникальные имена объекты, выполняющие определенные преобразования своих аргументов и при этом возвращающие результаты этих преобразований. Возврат результата — отличительная черта функций. При этом результат вычисления функции с одним выходным параметром подставляется на место ее вызова, что позволяет использовать функции в математических выражениях, например функцию sin в 2*sin(pi/2).
Функции в общем случае имеют список аргументов (параметров), заключенный в круглые скобки. Если функция возвращает несколько значений, то она записывается в виде
[Yl. Y2....]=func(Xl. X2...)
где Yl. Y2,... — список выходных параметров и XI, Х2.... — список входных аргументов (параметров).
Применение оператора: (двоеточие)
Очень часто необходимо произвести формирование упорядоченных числовых последовательностей. Такие последовательности нужны для создания векторов или значений абсциссы при построении графиков. Для этого в MATLAB используется оператор : (двоеточие): Начальное_значение:Шаг:Конечное_значение
Данная конструкция порождает возрастающую последовательность чисел, которая начинается с начального значения, идет с заданным шагом
и завершается конечным значением. Если Шаг не задан, то он принимает значение 1. Если конечное значение указано меньшим, чем начальное значение, — выдается сообщение об ошибке. Примеры применения оператора : даны ниже:
» 1:5
ans =
1 2 3 4 5
» i=0:2:10
i = 0 2 4 6 8 10
» j=10:-2:2
j =10 8 6 4 2
» V=0:pi/2:2*pi;
» V
V =
0 1.5708 3.1416 4.7124 6.2832
» X= l:-.2:0
X=
1.0000 0.8000 0.6000 0.4000 0.2000 0
» 5:2
ans=
Empty matrix:1-by-0
Таким образом, оператор : является весьма удобным средством задания регулярной последовательности чисел. Он широко используется при работе со средствами построения.
Вычисления производных
Для вычисления в символьном виде производных от выражения s служит функция diff, записываемая в формате diff (S, ' v ' ) или d i f f (S, sym ( ' v ' ) ) . Она возвращает символьное значение первой (n=l) производной от символьного выражения или массива символьных выражений s по переменной v.
• d i f f (S,n) — возвращает n-ю (n — целое число) производную от символь-
ного выражения или массива символьных выражений S по переменной v.
• d i f f (S, ' v ' , n) и d i f f (S, n, ' v ' ) — возвращает n-ю производную s no
переменной v, то есть значение
Примеры:
>> x = s y m ( ' x ' ) ; y = s y m ( ' у ' ) ;
>> d i f f ( x ^ y )
ans =
х^у*у/х
>> d i f f ( х ^ у , х )
ans =
х^у*у/х
Вычисления интегралов
В практической работе часто возникает необходимость вычисления неопределенных и определенных интегралов
• i n t ( S ) — возвращает символьное значение неопределенного интеграла от
символьного выражения или массива символьных выражений s по переменной, которая автоматически определяется функцией findsym. Если S — скаляр или матрица, то вычисляется интеграл по переменной 'х'.
• i n t ( S , v ) — возвращает неопределенный интеграл от S по переменной v.
• i n t (S,a,b) — возвращает определенный интеграл от s с пределами интег-
рирования от а до Ь, причем пределы интегрирования могут быть как сим-
вольными, так и числовыми.
• i n t (S, v, a,b) — возвращает определенный интеграл от s по переменной v
с пределами от а до Ь.
Примеры применения этой функции приводятся ниже:
>> x = s y m ( ' х ' ) ;
>> i n t ( х ^ 2 , х )
ans =
1/3*х^3
>> i n t ( s i n ( х ) ^3 , х )
ans =
- l / 3 * s i n ( x ) ^2 * c o s ( x ) - 2 / 3 * c o s ( x )
» i n t ( l o g ( 2 * x ) , x )
ans =
l o g ( 2 * x ) * x – x
>> i n t ( ( х ^ 2 - 2 ) / ( х^ З - 1 ) , x , 1 , 2 )
ans =
- i n f
Следующий пример относится к вычислению тройного интеграла:
Здесь можно трижды использовать функцию i n t :
>> syms x у z a
>> i n t ( i n t ( i n t ( ( x ^ + y A 2 ) * z , x , 0 , a ) , y , 0 , a ) , z , 0 , a )
ans =
1/3*а^6
Итак, один из приведенных примеров вычисляет интеграл с бесконечным верхним пределом, другой — довольно «каверзный» интеграл, а третий — тройной
интеграл.
Решение алгебраических уравнений
Для решения систем алгебраических уравнений и одиночных уравнений служит функция solve:
• solve (exprl, expr2,..., exprN, v a r l , var2, ...varN) — возвращает значения переменных var l , при которых соблюдаются равенства, заданные выражениями exprl . Если в выражениях не используются знаки равенства, то полагается exprl=0;
• solve (exprl, expr2,..., exprN) — аналогична предшествующей функции, но переменные, по которым ищется решение, определяются функцией findsym.
При отсутствии аналитического решения и числе неизвестных, равном числу уравнений, ищется только одно численное решение, а не все решения. Результат решения возможен в следующих формах:
• для одного уравнения и одной переменной решение возвращается в виде одномерного или многомерного массива ячеек;
• при одинаковом числе уравнений и переменных решение возвращается в упорядоченном по именам переменных виде;
• для систем с одним выходным аргументом решение возвращается в виде массива записей.
Примеры:
>> syms х у;
>> solve(х^3-1,х)
ans =
[ 1]
[-1/2+1/2*i*3^ (1/2)]
[-1/2-1/2*i*3^ (1/2)]
>> S=solve('х+у=3','х*у^2=4',х,у)
S = ans =
х: [3x1 sym]
у: [3x1 sym]
>> S.x
ans =
[ 4]
[ 1]
[ 1]
>> S .у
ans =
[ -1]
[ 2]
[ 2]
>> solve('sin(x)=0.5',х)
ans =
.5235 9877559829887307710723054658
Обратите внимание на то, что для задания уравнений в явном виде используются строковые выражения, когда уравнения заключаются в апострофы. Рекомендуется использовать графики функций или графики левой и правой части уравнений для получения графической интерпретации решений. Это особенно полезно в том случае, если решение носит множественный характер, поскольку функция solve дает только одно решение.
Упрощение выражений
Функция simplify (S) поэлементно упрощает символьные выражения массива S. Если упрощение невозможно, то возвращается исходное выражение.
Примеры:
>> syms a b x;
>> V=[sin(х)^2+соs(х)^2 , log(a*b)];
>> simplify(V)
ans =
[1, log'(a*b)]
» simplify((а^2-2*а*b+b^2)/ (a-b))
ans =
a-b
Разложение выражений на простые множители
Функция f a c t o r (S) поэлементно разлагает выражения вектора s на простые множители, а целые числа — на произведение простых чисел. Следующие примеры иллюстрируют применение функции:
>> x = s y m ( ' х ' ) ;
>> f a c t o r (х^7-1)
ans =
( х - 1 ) * (х^6+х^5+х^4+х^3+х^2+х+1)
>> f a c t o r (х^2-х-1)
ans =
х ^2 - х - 1
>> f a c t o r ( s y m ( ' 1 2 3 4 5 6 7 8 9 1 ) )
ans =
( 3 ) ^ 2 * (3803)* (3607)
Вызов списка разделов интерактивной справки
MATLAB имеет интерактивную систему помощи, которая реализуется в командном режиме с помощью команды
» help
которая выводит весь список папок, содержащих m-файлы с определениями операторов, функций и иных объектов, присущих конкретной реализации системы MATLAB.
Подпапки операторов, конструкций языка и системных функций:
ops — операторы и специальные символы;
tang — конструкции языка программирования;
strfun — строковые функции;
iofun — функции ввода/вывода;
timefun — функции времени и дат;
datatypes — типы и структуры данных.
Подпапки основных математических и матричных функций:
elmat — команды создания элементарных матриц и операций с ними;
elfun — элементарные математические функции;
specfun — специальные математические функции;
matfun — матричные функции линейной алгебры;
datafun — анализ данных и преобразования Фурье;
polyfun — полиномиальные функции и функции интерполяции;
funfun — функции функций и функции решения обыкновенных дифференциальных уравнений;
soarfun — функции разреженных матриц.
Подпайки команд графики:
graph2d — команды двумерной графики;
graph3d — команды трехмерной графики;
specgraph — команды специальной графики;
graphics — команды дескрипторной графики;
uitools — графика пользовательского интерфейса.
Лекция №2 графика MATLAB
Построение графиков отрезками прямых
Функции находят широкое применение в практике математических и других расчетов, а также в технике компьютерного математического моделирования. Для отображения таких функций используются графики в декартовой (прямоугольной) системе координат. При этом обычно строятся две оси — горизонтальная X и вертикальная Y, и задаются координаты х и у, определяющие узловые точки функции у(х). Эти точки соединяются друг с другом отрезками прямых, т. е. при построении графика осуществляется линейная интерполяция для промежуточных точек. Поскольку MATLAB — матричная система, совокупность точек у(х) задается векторами X и Y одинакового размера. Команда plot служит для построения графиков функций в декартовой системе координат. Эта команда имеет ряд параметров, рассматриваемых ниже.
plot (X, Y) — строит график функции у(х), координаты точек (х, у) которой берутся из векторов одинакового размера Y и X. Если X или Y — матрица, то строится семейство графиков по данным, содержащимся в колонках матрицы. Приведенный ниже пример иллюстрирует построение графиков двух функций — sin(x) и cos(x), значения функции которых содержатся в матрице Y, а значения аргумента х хранятся в векторе X:
» х-[0 1 2 3 4 5];
» Y=[sin(x);cos(x)];
» plot(x.Y)
plot(X.Y.S) — аналогична команде plot(X.Y), но тип линии графика можно задавать с помощью строковой константы S.
Значениями константы S могут быть следующие символы.
Цвет линии,
Y Желтый
М Фиолетовый
С Голубой
R Красный
G Зеленый
В Синий
W Белый
К Черный
Тип точки,
. Точка
0 Окружность
X Крест
+ Плюс
* Звездочка
S Квадрат
D Ромб
V Треугольник (вниз)
А Треугольник (вверх)
< Треугольник (влево)
> Треугольник (вправо)
Р Пятиугольник
H Шестиугольник
Тип линии
- Сплошная
; Двойной пунктир
-. Штрих-пунктир
--Штриховая
рlot (X1. Y1, S1, Х2, Y2, S2, ХЗ, Y3, S3,...) — эта команда строит на одном графике ряд линий, представленных данными вида (X..Y..S.),
При отсутствии указания на цвет линий и точек он выбирается автоматически из таблицы цветов (белый исключается). Если линий больше шести, то выбор цветов повторяется.
Рассмотрим пример построения графиков трех функций с различным стилем представления каждой из них:
» x=-2*pi:0.1*pi:2*pi;
» yl=sin(x);
» y2=sin(x).^2;
» y3=sin(x).^3;
» plot(x,yl,'-m',x,y2,'-.+r',х,у3,'--ok')
Графики в логарифмическом масштабе
Для построения графиков функций со значениями х и у, изменяющимися в широких пределах, нередко используются логарифмические масштабы.
Рассмотрим команды, которые используются в таких случаях.
loglogx(...) — синтаксис команды аналогичен ранее рассмотренному для функции plot(...). Логарифмический масштаб используется для координатных осей X и У. Ниже дан пример применения данной команды:
» x=logspace(-1,3,N);
» loglog(x,exp(x)./x)
» grid on
Обратите внимание на то, что командой grid on строится координатная сетка. Неравномерное расположение линий координатной сетки указывает на логарифмический масштаб осей.
Графики в полулогарифмическом масштабе
В некоторых случаях предпочтителен полулогарифмический масштаб графиков, когда по одной оси задается логарифмический масштаб, а по другой — линейный. Для построения графиков функций в полулогарифмическом масштабе используются следующие команды:
semilogx(...) — строит график функции в логарифмическом масштабе (основание 10) по оси X и линейном по оси Y;
semilogy(...) — строит график функции в логарифмическом масштабе по оси Y и линейном по оси X. Запись параметров (...) выполняется по аналогии с функцией plot(...).
Столбцовые диаграммы
bar(x, W) — строит столбцовый график элементов вектора x , W- ширина столбцов.
Построение гистограмм
Классическая гистограмма характеризует числа попаданий значений элементов вектора Y в М интервалов с представлением этих чисел в виде столбцовой диаграммы. Для получения данных для гистограммы служит функция hist, записываемая в следующем виде:
N=hist(Y) — возвращает вектор чисел попаданий для 10 интервалов, выбираемых автоматически. Если Y — матрица, то выдается массив данных о числе попаданий для каждого из ее столбцов;
N=hist(Y,M) — аналогична вышерассмотренной, но используется М интервалов (М — скаляр);
N=hist(Y.X) — возвращает числа попаданий элементов вектора Y в интервалы, центры которых заданы элементами вектора X;
График дискретных отсчетов функции
Для построения графика подобного вида используются команды stem(...):
stem(X,Y) — строит график отсчетов с ординатами в векторе Y и абсциссами в векторе X;
stem(.... 'LINESPEC') — дает построения, аналогичные ранее приведенным командам, но со спецификацией линий 'LINESPEC', подобной спецификации, приведенной для функции plot;
stem(Y) — строит график функции с ординатами в векторе Y в виде отсчетов;
Установка титульной надписи
После того как график уже построен, MATLAB позволяет выполнить его форматирование или оформление в нужном виде. Соответствующие этому средства описаны ниже. Так, для установки над графиком титульной надписи используется следующая команда:
title('string') — установка на двумерных и трехмерных графиках титульной надписи, заданной строковой константой 'string'.
Установка осевых надписей
Для установки надписей возле осей х, у и z используются следующие команды:
xlabe('String')
ylabel ('String')
zlabel ('String')
Ввод текста в любое место графика
Часто возникает необходимость добавления текста в определенное место графика, например для обозначения той или иной кривой графика. Для этого используется команда text:
text(X.Y. 'string') — добавляет в двумерный график текст, заданный строковой константой 'string', так что начало текста расположено в
точке с координатами (X, Y). Если X и Y заданы как одномерные массивы, то надпись помещается во все позиции [x(i) ,y(i)];
Позиционирование текста с помощью мыши
Очень удобный способ ввода текста предоставляет команда gtext:
gtext('string') — задает выводимый на график текст в виде строковой константы ' string' и выводит на график перемещаемый мышью маркер в виде крестика. Установив маркер в нужное место, достаточно щелкнуть любой кнопкой мыши для вывода текста;
Вывод пояснений
Пояснение в виде отрезков линий со справочными надписями, размещаемое внутри графика или около него, называется легендой. Для создания легенды используются различные варианты команды legend:
legend(stringl,string2. strings,...) — добавляет к текущему графику легенду в виде строк, указанных в списке параметров;
legend OFF — устраняет ранее выведенную легенду;
legend (....Pos) — помещает легенду в точно определенное место, специфицированное параметром Pos:
Pos=0 — лучшее место, выбираемое автоматически;
Pos=l — верхний правый угол;
Pos=2 — верхний левый угол;
Pos=3 — нижний левый угол;
Pos=4 — нижний правый угол;
Pos=-l — справа от графика.
Чтобы перенести легенду, установите на нее курсор, нажмите левую кнопку мыши и перетащите легенду в необходимую позицию.
Управление свойствами осей графиков
Обычно графики выводятся в режиме автоматического масштабирования. Следующие команды класса axis меняют эту ситуацию:
axis([XMIN XMAX YMIN YMAX]) — установка диапазонов координат по осям х и у для текущего двумерного графика;
axis auto — установка параметров осей по умолчанию;
axis manual — «замораживает» масштабирование в текущем состоянии, чтобы при использовании команды hold on следующие графики использовали те же параметры осей;
Включение и выключение сетки
В математической, физической и иной литературе при построении графиков в дополнение к разметке осей часто используют масштабную сетку. Команды grid позволяют задавать построение сетки или отменять это построение:
grid on — добавляет сетку к текущему графику;
grid off — отключает сетку;
grid — последовательно производит включение и отключение сетки.
Наложение графиков друг на друга
Во многих случаях желательно построение многих наложенных друг на друга графиков в одном и том же окне. Для этого служит команда
продолжения графических построений hold. Она используется в следующих формах:
hold on — обеспечивает продолжение вывода графиков в текущее окно, что позволяет добавлять последующие графики к уже
существующим;
hold off — отменяет режим продолжения графических построений;
hold — работает как переключатель, последовательно включая режим продолжения графических построений и отменяя его.
Разбиение графического окна
Бывает, что в одном окне надо расположить несколько координатных осей с различными графиками без наложения их друг на друга. Для
этого используются команды subplot, применяемые перед построением графиков:
subplot — создает новые объекты класса axes (подокна);
subplot(m.n.p) или subplot(mnp) — разбивает графическое окно на тхпподокон, при этом m — число подокон по горизонтали, n — число подокон по вертикали, а р— номер подокна, в которое будет выводиться текущий график (подокна отсчитываются последовательно по строкам);