Проверяйте возможности переменных в редакторе

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

Анализатор кода не всегда указывает на проблемы просмотра, потому что совместное использование переменной между функциями не является ошибкой - это может быть ваше намерение. Использование MATLAB® функции и функции подсветки переменных, чтобы идентифицировать, когда и где ваш код использует функции и переменные. Если у вас есть активное подключение к Интернету, вы можете посмотреть видео Переменная и Подсветка Функции для обзора основных функций.

Концептуальные сведения о вложенных функциях и различных типах Переменного MATLAB см. в Разделение переменных между Родительским элементом и вложенными функциями и Совместное использование данных между Рабочими областями.

Используйте автоматическую подсветку функций и переменных

По умолчанию редактор указывает функции, локальные переменные и переменные с общими возможностями в различных оттенках синего цвета. Переменные с общими возможностями включают: глобальные переменные, постоянные переменные и переменные во вложенных функциях. (Для получения дополнительной информации см. Раздел «Вложенные функции».)

Чтобы включить и отключить подсветку или изменить цвета, нажмите Preferences и выберите MATLAB > Colors > Programming tools. В Online™ MATLAB подсветка включена по умолчанию, и изменение настроек подсветки недоступно.

По умолчанию Редактор:

  • Подсвечивает все образцы заданной функции или локальной переменной в небесно-синем цвете, когда вы помещаете курсор в имя функции или переменной. Для образца:

  • Отображает переменную с общими возможностями в синем цвете, независимо от расположения курсора. Для образца:

Пример использования автоматической подсветки функций и переменных

Рассмотрим код для функции rowsum:

function rowTotals = rowsum
% Add the values in each row and 
% store them in a new array
 
x = ones(2,10);
[n, m] = size(x);
rowTotals = zeros(1,n);
for i = 1:n     
    rowTotals(i) = addToSum;
end
 
    function colsum = addToSum
        colsum = 0;
        thisrow = x(i,:);
        for i = 1:m
              colsum = colsum + thisrow(i);
        end
    end
 
end

Когда вы запускаете этот код, вместо того, чтобы возвращать сумму значений в каждой строке и отображать:

ans =

    10    10

MATLAB отображает:

ans =

     0     0     0     0     0     0     0     0     0    10

Исследуйте код следующими шагами:

  1. На вкладке Home в разделе Environment щелкните Preferences и выберите MATLAB> Colors> Programming tools. Убедитесь, что выбраны Automatically highlight и Variables with shared scope.

  2. Скопируйте rowsum код в редактор.

    Заметьте, что переменная появляется в синем цвете, что указывает на i не является локальной переменной. Оба rowTotals функции и addToSum функции устанавливают и используют переменную i.

    Переменная n, в линии 6 появляется черным цветом, что указывает на то, что она не охватывает несколько функций.

  3. Наведите указатель мыши на образец переменной i.

    Появляется всплывающая подсказка: Возможности переменной 'i' охватывают несколько функций.

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

  5. Щелкните образец i.

    Каждая ссылка на i подсветки в небо синяя и маркеры появляются на панели индикаторов в правой части редактора.

  6. Наведите на один из индикаторных штриховых маркеров.

    Появляется всплывающая подсказка, в которой отображается имя функции или переменной и строка кода, представленная маркером.

  7. Щелкните маркер, чтобы перейти к линии, указанному в всплывающей подсказке для этого маркера.

    Это особенно полезно, когда ваш файл содержит больше кода, чем вы можете просмотреть одновременно в редакторе.

Исправьте код, изменив образец i с линией 15 по y.

Похожие эффекты подсветки можно увидеть при клике по ссылке на функцию. Для образца нажмите addToSum.