Добавьте и заполните блок MATLAB function программно

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

  1. Создайте файлы для примера.

    • Создайте и сохраните образцовый myModel.

    • Создайте эту функцию MATLAB и сохраните ее в myAdd.m m.

      function c = myAdd(a, b)
      c = a + b;

  2. Запишите скрипт MATLAB, который добавляет блок MATLAB function к myModel и заполняет его с содержимым myAdd.m m.

    % Add a MATLAB Function block to a model and populate
    % the block with MATLAB code.
    %
    % Copyright 2017 The Mathworks, Inc.
    
    open_system('myModel.slx');
    libraryBlockPath = 'simulink/User-Defined Functions/MATLAB Function';
    newBlockPath = 'myModel/myBlockName';
    add_block(libraryBlockPath, newBlockPath);
    blockHandle = find(slroot, '-isa', 'Stateflow.EMChart', 'Path', newBlockPath);
    blockHandle.Script = fileread('myAdd.m');

    • Эта строка скрипта добавляет блок MATLAB function к модели:

      add_block(libraryBlockPath, newBlockPath);

    • В памяти открытые модели и их части представлены иерархией объектов. Корневым объектом является slroot. Эта строка скрипта возвращает объект, который представляет новый блок MATLAB function:

      blockHandle = find(slroot, '-isa', 'Stateflow.EMChart', 'Path', newBlockPath);

    • Свойство Script объекта содержит содержимое блока, представленного как вектор символа. Эта строка скрипта загружает содержимое файла myAdd.m в свойство Script:

      blockHandle.Script = fileread('myAdd.m');

  3. Запустите скрипт.

    Вы видите новый блок MATLAB function в myModel.

  4. Чтобы видеть код, который вы добавили к блоку, дважды кликните блок myBlockName.

  5. Сохраните и закройте модель.

  6. Измените скрипт для своей модели.

    • Замените myModel на имя вашей модели.

    • Установите newBlockPath на путь для нового блока для вашей модели.

    • Замените myAdd.m на имя файла, который содержит функцию MATLAB, которую вы хотите в блоке MATLAB function. Также можно задать код непосредственно в векторе символа. Например:

      blockHandle.Script = 'function c = fcn(a, b)';

Смотрите также

Похожие темы

Была ли эта тема полезной?