Секции кода

Разделите файл на секции кода

MATLAB® часто файлы состоят из многих команд. Обычно вы фокусируете усилия на одной части своей программы за раз, работая с кодом в фрагментах. Точно так же, объясняя свои файлы другим, часто вы описываете свою программу фрагментами. Чтобы облегчить эти процессы, используйте секции кода, также известные как камеры кода или режим камеры. Секция кода содержит смежные строки кода, которые вы хотите оценить как группу в скрипте MATLAB, начиная с двух символов комментария (%%).

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

  • На вкладке Editor щелкните (или Section Break в MATLAB Online™).

  • Введите два процентных знака (%%) в начале линии, где вы хотите начать новую секцию кода.

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

Оценка секций кода

Когда вы разрабатываете файл MATLAB, можно использовать функции раздела Editor, чтобы вычислить разделы по разделам файла. Этот метод помогает вам экспериментировать и подстраивать свою программу. Вы можете перемещаться между разделами и вычислять каждый раздел по отдельности. Чтобы вычислить раздел, он должен содержать все требуемые значения или значения должны существовать в рабочем пространстве MATLAB.

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

В этой таблице приведены инструкции по оценке секций кода.

ОперацияИнструкции
Запустите код в текущем разделе.

С помощью курсора в секции кода, на вкладке Editor, в разделе Run, нажмите Run Section.

В MATLAB Online кнопка Run Section расположена в разделе Section.

Запустите код в текущем разделе, а затем перейдите к следующему разделу.

С помощью курсора в секции кода, на вкладке Editor, в разделе Run, нажмите Run and Advance.

В MATLAB Online кнопка Run and Advance расположена в разделе Section.

Запустите весь код в файле.

На вкладке Editor, в разделе Run, нажмите Run.

Вы также можете ввести имя сохраненного скрипта в Командном окне.

Инкрементные значения в секциях кода

Можно увеличивать числа в сечении, повторяя это сечение после каждого изменения. Это помогает вам подстраиваться и экспериментировать с кодом.

Чтобы увеличить или уменьшить число в разделе:

  1. Выделите или установите курсор рядом с номером.

  2. Щелкните правой кнопкой мыши, чтобы открыть контекстное меню.

  3. Выберите Increment Value and Run Section. Появится небольшое диалоговое окно.

  4. Введите соответствующие значения в поле/text или/text.

  5. Нажмите кнопку,, или, чтобы добавить, вычесть, умножить или разделить выбранное число в разделе.

    MATLAB запускает раздел после каждого нажатия кнопки.

Примечание

MATLAB не сохраняет автоматически внесенные изменения в номера в вашем скрипте.

Навигация между секциями кода в файле

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

ОперацияИнструкции
Перейдите к следующему разделу.

На вкладке Editor, в разделе Run, нажмите Advance.

Перейдите к предыдущему разделу.

Нажмите Ctrl + Up стрелы.

Перейдите к определенному разделу.

На вкладке Editor, в разделе Navigate, используйте Go To, чтобы переместить курсор к выбранному разделу.

В MATLAB Online, для навигации между разделами, на вкладке Editor, в разделе Navigate, выберите Go To. Затем выберите из доступных опций.

Пример оценки секций кода

Этот пример задает две секции кода в файле с именем sine_wave.m а затем увеличивает значение параметра, чтобы настроить созданный график. Чтобы открыть этот файл в редакторе, запустите следующую команду, а затем сохраните файл в локальную папку:

edit(fullfile(matlabroot,'help','techdoc','matlab_env',...
'examples','sine_wave.m'))

После того, как файл будет открыт в вашем редактор:

  1. Вставьте пропуск раздела и следующий заголовок в первую линию файла.

     %% Calculate and Plot Sine Wave
    

  2. Вставьте пустую линию и второй пропуск сечения после plot(x,y). Добавьте заголовок раздела, Modify Plot Properties, так что весь файл содержит этот код:

    %% Calculate and Plot Sine Wave
    % Define the range for x.
    % Calculate and plot y = sin(x).
    x = 0:1:6*pi;
    y = sin(x);
    plot(x,y)
    
    %% Modify Plot Properties
    title('Sine Wave')
    xlabel('x')
    ylabel('sin(x)')
    fig = gcf;
    fig.MenuBar = 'none';

  3. Сохраните файл.

  4. Поместите курсор в раздел под названием Calculate and Plot Sine Wave. На вкладке Editor, в разделе Run, нажмите Run Section. В MATLAB Online кнопка Run Section расположена в разделе Section.

    Рисунок, отображающий график sin(x) появляется.

  5. Сглаживайте синусоидальный график.

    1. Подсветите 1 в операторе: x = 0:1:6*pi; .

    2. Щелкните правой кнопкой мыши и выберите Increment Value and Run Section. Появится небольшое диалоговое окно.

    3. Тип 2 в текстовом поле/.

    4. Нажмите кнопку несколько раз.

      График синуса становится более плавным после каждого последующего нажатия кнопки.

    5. Закройте фигуру и сохраните файл.

  6. Запуск всей sine_wave.m файл. Гладкий синусоидальный график с заголовками появляется в новой Фигуре.

Изменение внешнего вида секций кода

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

Чтобы изменить отображение секций кода:

  1. На вкладке Home, в разделе Environment, нажмите Preferences.

    Откроется диалоговое окно Выбор (Preference).

  2. На левой панели выберите MATLAB > Colors > Programming Tools.

  3. В разделе Section display options выберите внешний вид секций кода.

    Можно выбрать, подсвечивать ли разделы, цвет подсветки и появляются ли разделительные линии между секциями кода.

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

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

MATLAB автоматически задает контуры сечения в блоке кода, согласно этим критериям:

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

  • Если вы задаете пропуск раздела в операторе потока управления (таком как if или while оператор), MATLAB автоматически вставляет раздел пропусков в линии, содержащий начало и конец оператора.

  • Если вы задаете пропуск раздела внутри функции, MATLAB вставляет пропуски раздела в объявление функции и в оператора end функции. Если вы не заканчиваете функцию на end оператор MATLAB ведет себя так, как будто конец функции происходит непосредственно перед началом следующей функции.

Если автоматическое пропуск происходит на той же линии, что и вставляемый пропуск, они складываются в один пропуск сечения.

Вложенные Секции кода Пропусков

Следующий код иллюстрирует концепцию вложенных секций кода:

t = 0:.1:pi*4;
y = sin(t);

for k = 3:2:9
    %%
    y = y + sin(k*t)/k;
    if ~mod(k,3)
        %%
        display(sprintf('When k = %.1f',k));
        plot(t,y)
    end
end
Если вы копируете и вставляете этот код в РЕДАКТОРА MATLAB, то видите, что два раздела пропусков создать три вложенных уровня:

  • На крайнем уровне вложения один раздел охватывает весь файл.

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

  • На втором уровне вложения раздел существует в for цикл.

  • На третьем уровне вложения существует один раздел в if оператор.

Похожие темы