Notebook interface внутри MATLAB

Многие учёные, работающие с данными любят писать код не в виде голых скриптов, а используя так называемый notebook interface (типичный пример - Jupyter Notebook). Удобно это прежде всего потому, что ваш код становится более понятным, комментарии к коду хорошо читаются, а главное, прямо между строк можно вставлять результаты выполнения кода, например, полученные графики и построения.

В 2016 году MATLAB тоже создал свой вариант такого интерфейса, но на самом деле я пока не часто вижу, что им кто-то пользуется. Одна из причин (именно она побудила меня написать эту заметку) - не все знают об этой возможности MATLAB, хотя найти её совсем не сложно, она буквально постоянно маячит перед глазами (если у вас, конечно, установлен свежий MATLAB).

Итак, Notebook interface в MATLAB называется Live Editor, в которм можно создавать "живые скрипты" (Live Script). Создать такой скрипт можно также, как вы создаёте обычный скрипт (m-файл). На вкладке HOME для этого отведена специальная кнопка "new live script'. Если кнопки не окажется, поищите её под кнопкой "New":

Читать далее «Notebook interface внутри MATLAB»

Наносим линейный тренд на график временного хода в MATLAB

Сегодня мы нанесём линию тренда с доверительными интервалами на график временного ряда.

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

nao = load('norm.nao.monthly.b5001.current.ascii.txt');

Для того, чтобы тренд был явно выражен мы выбрали только последние несколько лет (да-да, это тот самый случай, когда учёные манипулируют с данными, никогда так не делайте в своей научной работе):

dates = datetime(nao(750:end,1),nao(750:end,2),15);
nao=nao(750:end,3);

Построим график для того, чтобы представлять, с чем имеем дело (параметр 'k' делает линию чёрной, а 'LineWidth' устанавливает толщину линии):

plot(dates, nao,'k','LineWidth',2)
Индекс NAO

Тренд здесь хорошо заметен. Если вам нужно удалить линейный тренд из данных, то сделать это можно при помощи простой функции detrend:

Читать далее «Наносим линейный тренд на график временного хода в MATLAB»