get_param

Получите названия параметра и значения

Синтаксис

ParamValue = get_param(Object,Parameter)

Описание

пример

ParamValue = get_param(Object,Parameter) возвращает имя или значение заданного параметра для заданной модели или блочного объекта. Откройте или загрузите модель Simulink® сначала.

Совет

Если вы выполняете множественные вызовы к get_param для того же блока, то определение блока с помощью числового указателя более эффективно, чем использование полного блока path. Используйте getSimulinkBlockHandle, чтобы получить блочный указатель.

Для названий параметра см.:

Примеры

свернуть все

Загрузите модель vdp.

load_system('vdp');

Получите значение для параметра блока Expression.

BlockParameterValue = get_param('vdp/Fcn','Expression')
BlockParameterValue =
    1 - u*u

Получите значение для параметра модели SolverType.

SolverType = get_param('vdp','SolverType')
SolverType =
   Variable-step

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

RootParameterNames = fieldnames(get_param(0,'ObjectParameters'));
load_system('vdp')
ModelParameterNames = fieldnames(get_param('vdp','ObjectParameters'));
GlobalParameterNames = setdiff(RootParameterNames,ModelParameterNames)
GlobalParameterNames =
          'AutoSaveOptions'
          'CacheFolder'
          'CallbackTracing'
          'CharacterEncoding'
                 . . .
          'CurrentSystem'

Получите значение глобального параметра.

GlobalParameterValue = get_param(0,'CurrentSystem')
GlobalParameterValue =
          vdp

Получите список параметров модели для модели vdp.

load_system('vdp')
ModelParameterNames = get_param('vdp','ObjectParameters')
ModelParameterNames =
              Name: [1x1 struct]
               Tag: [1x1 struct]
       Description: [1x1 struct]
              Type: [1x1 struct]
            Parent: [1x1 struct]
            Handle: [1x1 struct]
                       . . .
           Version: [1x1 struct]

Получите текущую стоимость параметра модели ModelVersion для модели vdp.

ModelParameterValue = get_param('vdp','ModelVersion')
ModelParameterValue =
          1.6

Получите список блочных путей и имен для модели vdp.

load_system('vdp')
BlockPaths = find_system('vdp','Type','Block')
BlockPaths = 
    'vdp/Fcn'
    'vdp/More Info'
    'vdp/More Info/Model Info'
    'vdp/Mu'
    'vdp/Mux'
    'vdp/Product'
    'vdp/Scope'
    'vdp/Sum'
    'vdp/x1'
    'vdp/x2'
    'vdp/Out1'
    'vdp/Out2'

Получите список блочных диалоговых параметров для блока Fcn.

BlockDialogParameters = get_param('vdp/Fcn','DialogParameters')
BlockDialogParameters = 
                Expr: [1x1 struct]
          SampleTime: [1x1 struct]

Получите значение для параметра блока Expr.

BlockParameterValue = get_param('vdp/Fcn','Expr')
BlockParameterValue =
    1 - u*u

Если вы выполняете множественные вызовы к get_param для того же блока, то использование блочного указателя более эффективно, чем определение полного блока path как вектор символа, e. g., 'vdp/Fcn'.

Можно использовать блочный указатель в последующих вызовах get_param или set_param. Если вы исследуете указатель, вы видите, что он содержит двойное. Не пытайтесь использовать количество одного только указателя (e. g., 5.007), потому что обычно необходимо задавать еще много цифр, чем отображения MATLAB®. Вместо этого присвойте указатель на переменную и используйте то имя переменной, чтобы задать блок.

Используйте getSimulinkBlockHandle, чтобы загрузить модель vdp при необходимости (путем определения true) и получить указатель на блок FCN.

fcnblockhandle = getSimulinkBlockHandle('vdp/Fcn',true);

Используйте блочный указатель с get_param и получите значение для параметра блока Expr.

BlockParameterValue = get_param(fcnblockhandle,'Expression')
BlockParameterValue =
    1 - u*u

Получите список блочных путей и имен для модели vdp.

load_system('vdp')
BlockPaths = find_system('vdp','Type','Block')
BlockPaths = 
    'vdp/Fcn'
    'vdp/More Info'
    'vdp/More Info/Model Info'
    'vdp/Mu'
    'vdp/Mux'
    'vdp/Product'
    'vdp/Scope'
    'vdp/Sum'
    'vdp/x1'
    'vdp/x2'
    'vdp/Out1'
    'vdp/Out2'

Получите значение для параметра BlockType для каждого из блоков в модели vdp.

BlockTypes = get_param(BlockPaths,'BlockType')
BlockTypes = 
    'Fcn'
    'SubSystem'
    'SubSystem'
    'Gain'
    'Mux'
    'Product'
    'Scope'
    'Sum'
    'Integrator'
    'Integrator'
    'Outport'
    'Outport'

Входные параметры

свернуть все

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

Совет

Если вы выполняете множественные вызовы к get_param для того же блока, то определение блока с помощью числового указателя более эффективно, чем использование полного блока path. Используйте getSimulinkBlockHandle, чтобы получить блочный указатель. Не пытайтесь использовать количество одного только указателя (e. g., 5.007), потому что обычно необходимо задавать еще много цифр, чем отображения MATLAB. Присвойте указатель на переменную и используйте то имя переменной, чтобы задать блок.

Задайте 0, чтобы получить корневые названия параметра, включая глобальные параметры и параметры модели для текущего сеанса Simulink.

  • Глобальные параметры включают настройки Редактора и параметры Simulink Coder™.

  • Параметры модели включают параметры конфигурации, параметры Simulink Coder и Код Simulink параметры Inspector™.

Пример: 'vdp/Fcn'

Параметр модели или блока или корня, заданного как вектор символа или 0 для корня. Таблица показывает особые случаи.

Заданный параметрРезультат
'ObjectParameters'

Возвращает массив структур с названиями параметра заданного объекта (модель, блок или корень) как отдельные поля в структуре.

'DialogParameters'

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

Название параметра, e. g., 'BlockType'. Задайте любую модель или блочный параметр, или блокируйте параметр диалогового окна.

Возвращает значение заданной модели или блочного параметра.

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

Пример: 'ObjectParameters'

Типы данных: char

Выходные аргументы

свернуть все

Имя или значение заданного параметра для заданной модели или блока или корня. Если вы задаете несколько объектов, вывод является массивом ячеек объектов. Таблица показывает особые случаи.

Заданный параметрParamValue возвращен
'ObjectParameters'

Массив структур с названиями параметра заданного объекта (модель, блок или корень) как отдельные поля в структуре.

'DialogParameters'

Массив структур с блочными названиями параметра диалогового окна как отдельные поля в структуре. Если блок имеет маску, функция вместо этого возвращает параметры маски.

Название параметра, e. g., 'BlockType'

Значение заданной модели или блочного параметра. Если несколько блоков заданы как массив ячеек, возвращает массив ячеек со значениями заданного параметра, характерного для всех блоков.

Если вы получаете корневые параметры путем определения get_param(0,'ObjectParameters'), то вывод ParamValue является массивом структур с корневыми названиями параметра как отдельные поля в структуре. Каждое поле параметра является структурой, содержащей эти поля:

  • Введите — значения типа Параметра: 'boolean', 'string', 'int', 'real', 'point', 'rectangle', 'matrix', 'enum', 'ports' или 'list'

  • Перечисление — Массив ячеек значений вектора символа перечисления, который применяется только к типам параметра 'enum'

  • Атрибуты — Массив ячеек из символьных векторов, задающий атрибуты параметра. Значения: 'read-write', 'read-only', 'read-only-if-compiled', 'write-only', 'dont-eval', 'always-save', 'never-save', 'nondirty' или 'simulation'

Представлено до R2006a

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