Добавление графику надписей

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

 

Следующие команды пишутся после выведения графиков

 

Добавление легенды (название каждой линии, если их несколько):

legend('линия1','линия2', 'линия3');

Или

legend('линия1','линия2', -1);

если линий несколько, но нужно подписать все кроме последней (чтобы линия стала последеней достаточно её plot() вызвать последним)

Все остальные настройки можно посмотреть здесь:

https://www.mathworks.com/help/matlab/ref/legend-properties.html

 

Название графика

title('The graphic of sin(x) function');

 

Подписи осей

xlabel('The coordinate of Ox');

ylabel('The coordinate of Oy');

 

Просто текст посреди графика

text(3.05,0.16,'\leftarrow sin(x)');

где 3.05 - координата по х, 0.16 - по y, \leftarrow - зарезервированное слово, которое нарисует стрелочку (такие символы начинаются на \), sin(x) - сам текст

 

Диапазон осей

axis([ xmin, xmax, ymin, ymax ]);

 

 

Выделение информации из сохранённых графиков

Графики в формате.fig содержат массивы точек, которые отображены на этом графике. Для того, чтобы восстановить данные необходимо открыть график (перетащить график в окно Matlab или ввести open('example.fig');),

Ввести команды:

h = gcf;     % получение handle графика

axesObjs = get(h, 'Children'); % получение объектов графика

dataObjs = get(axesObjs, 'Children');

xdata = get(dataObjs, 'XData'); % XData - название массива данных, сохранённых в.fig по оси х

ydata = get(dataObjs, 'YData'); % YData - название массива данных, сохранённых в.fig по оси y. Есть ещё ZData

 

На выходе xdata - массив с точками по оси Х, ydata - массив точек по оси Y.

 

 

Тригонометрические функции

 

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

sin(x) % синус

asin(x) % арксинус

cos(x) % косинус

acos(x) % арккосинус

tan(x) % тангенс

atan(x) % аргтангенс

cot(x) % котангенс

acot(x) % арккотангенс

Например,

var = cos(3.14)

Результат: var = -1.0000.

 

Переменная пи уже объявлена в матлабе и вызывается как pi.

 

Функции

 

Функция - подпрограмма, выполняющая заложенный в неё код. Создаются функции аналогично скриптам - New -> function. Начинается с кодового слова function и заканчивается end'ом (при создании функции по умолчанию эта заготовка уже есть).

 

Нужно различать определение и вызов функций. Определение — это описание кода функции; вызов функции — использование из кода сторонней программы.

 

Первая строка определения будет выглядеть так:

function [ output_args ] = untitled(input_args)

 

output_args в квадратных скобках - выходные переменные - то, что функция возвратит после выполнения. untitled здесь - название функции, input_args - входные аргументы.

 

Например, пусть необходимо создать функцию, которая будет складывать два числа и возвращать результат. В таком случае входных аргумента два - два складываемых числа (пусть будут называться A и B). Выходной аргумент один - результат сложения (будет называться C). Название необходимо поменять на что-нибудь понятное (будет называться func_sum). Тогда код такой функции будет выглядеть так:

function [ C ] = func_sum(A, B)

C = A + B;

end

 

После этого функцию необходимо сохранить. При сохранении учитывается название функции, в моём случае файл будет называться func_sum.m

 

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

 

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

 

 sum = func_sum(2,3) % складывает 2 и 3

 

В результате функция возвращает одну переменную, присваиваемую переменной sum:

 

 sum =

  5

 

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

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

 

Случайные числа

Ежели требуется создать собственный массив данных (для тестирования, например), можно делать это с помощью функции rand(), которая создаёт случайное число в интервале от 0 до 1 используя равномерный закон распределения. Кроме того, есть ещё функция randn(), которая делает то же самое, но с нормальным законом распределения, диапазон здесь примерно от -2 до +2 с наиболее вероятными значениями в области нуля. (ну как и должно быть в нормальном распределении)

Обе функции могут принимать аргументы. Если это одно число n - создаётся массив размерностью n x n. Если два числа m и n - то размерности m x n.

Для изменения диапазона результат умножают на соответствующее значение. Например, для создания случайных цифр в диапазоне 0 - +10 умножить на 10: 10*rand();

Для создания в диапазоне -5 - +5 умножить на 10 и вычесть 5: 10*rand()-5;

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: