Написание строчных комментариев

В интервью данному Dikran Karagueuzian в 2006 году Дональд Кнут отмечает:

Я думаю, что самая большая польза для меня лично от всей этой работы над типографикой была идея того, что я решил назвать «грамотным программированием» (англ.: literate programming), что является способом обращения с компьютерными программами, как с литературой. Компьютерная программа – это то, что должны читать люди, и вы пишете её для людей, а не для компьютера.

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

Для того чтобы написать строчный комментарий в MATLAB необходимо использовать: %.

Коментарии игнорируются MATLAB при исполнении и явлются информацией только для программистов.

Коментарии можно оставлять на той же строке, что и строчка кода. Это часто удобно для отметки об используемых единицах измерений. Например:

% расчет индекса массы тела 
weight = 154; % lb - вес в фунтах
height = 70; % in - дюймы
bmi = weight / height^2 * 703

Блочные, или многострочные комментарии

В MATLAB также можно писать многострочные комментарии:

%{
  Этот скрипт вычисляет индекс массы тела (BMI)
  по заданным весу в фунтах и росту в дюймах.
  Формула расчета BMI:
  BMI = (вес в фунтах / (рост в дюймах)^2) * 703
%}

Для того, чтобы закоментировать несколько строчек кода можно выделить код → правая кнопка мыши → Comment или Ctrl+R.

Для того, чтобы разкоментировать несколько строчек кода можно выделить код → правая кнопка мыши → Unсomment или Ctrl+T.

Комментирование элементов многострочного определения

Рассмотрим вектор столбец чисел и столбца массива ячеек:

dataArray = [
    1
    2
    3
    4
]

cellArray = {
    'dog',
    'tiger',
    'sheep',
    'elephant'
}
dataArray =
     1
     2
     3
     4

cellArray =
  4×1 cell array
    {'dog'     }
    {'tiger'   }
    {'sheep'   }
    {'elephant'}

Предположим, что мы хотим закоментировать вторые по счету элементы:

dataArray = [
    1
    % 2
    3
    4
]

cellArray = {
    'dog',
    % 'tiger',
    'sheep',
    'elephant'
}
dataArray =
     1
     3
     4

cellArray =
  3×1 cell array
    {'dog'     }
    {'sheep'   }
    {'elephant'}

Подход выше не будет работать в случае вектора строки или в случае строки массива ячеек, необходимо использовать троеточие:

dataArray = [
    1, ...
    ... 2, ...
    3, ...
    4
]

cellArray = {
    'dog', ...
    ... 'tiger', ...
    'sheep', ...
    'elephant'
}
dataArray =
     1     3     4

cellArray =
  1×3 cell array
    {'dog'}    {'sheep'}    {'elephant'}

Аналогично можно закомментировать аргумент в многострочной передаче аргументов функции:

result = myfunc(arg1, ...
            ... arg2, ...
                arg2b, ...
                arg3);

Разбиение длинной строки на несколько строк

Выше мы рассматривали примеры, в которых кодовые строки были разбиты на несколько строк.

В MATLAB для разбиения длинной строки на несколько строк используется символ троеточия (англ.: elipsis) (...). Это полезно для улучшения читаемости и структурирования кода:

% Разбивка длинного выражения на несколько строк
result = (a + b + c + d ) ... то что после троеточия считается комментарием
       * (e + f + g + h + i + j);

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

Добавление комментариев к элементам в многострочном определении

dataArray = [
    1
    2 % This is the number of wheels on a bicycle
    3
    4
]

cellArray = {
    'dog',
    'tiger', % Saber tooth 
    'sheep',
    'elephant'
}
dataArray = [
    1, ...
    2, ... This is the number of wheels on a bicycle
    3, ...
    4
]

cellArray = {
    'dog', ...
    'tiger', ... Saber tooth 
    'sheep', ...
    'elephant'
}

Ячейки кода

В MATLAB ячейки кода (англ.: code cells) разделяют скрипт на независимые исполняемые блоки для удобства разработки и отладки. Каждая ячейка начинается с двойного процента (%%). Пример:

%% Загрузка данных
data = load('datafile.mat');

%% Обработка данных
processedData = preprocess(data);

%% Анализ данных
results = analyze(processedData);

%% Визуализация результатов
plot(results);

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

Чтобы выполнить код внутри ячейки можно воспользоваться горячими клавишами Ctrl+Enter или правой кнопкой мыши по строке находящейся в ячейке → Run Section.

Для пошагового запуска кодовых ячеек можно воспользоваться опцией меню EDITOR -> SECTION -> Run and Advance.