주요 콘텐츠

get_param

R2026b

파라미터 이름과 값 가져오기

설명

value = get_param(Object,Parameter)는 대상 객체의 지정된 파라미터 값을 반환합니다. 예를 들어 이 구문을 사용하여 Sine Wave 블록의 진폭 값을 가져올 수 있습니다. 대상 객체는 핸들 또는 경로로 지정된 모델, 서브시스템, 라이브러리, 블록, 선, 포트 또는 버스 요소 포트 요소가 될 수 있습니다. 핸들과 경로를 가져오는 방법에 대한 자세한 내용은 Get Handles and Paths 항목을 참조하십시오.

Simulink® 모델, 서브시스템, 라이브러리 또는 그 내용을 쿼리하려면 해당 모델, 서브시스템 또는 라이브러리를 불러오거나 열어야 합니다.

예제

예제

모두 축소

mySubsystem이라는 Subsystem 블록을 포함하며 이름이 myModel인 모델을 불러왔다고 가정하겠습니다. 서브시스템에는 myBlock이라는 Gain 블록이 있습니다. 이득 값을 가져옵니다.

값을 가져오려면 다음 2개의 입력이 필요합니다.

  • 파라미터 값을 쿼리하고자 하는 블록의 핸들 또는 경로

    핸들과 경로를 가져오는 방법에 대한 자세한 내용은 Get Handles and Paths 항목을 참조하십시오.

  • 값을 쿼리하고자 하는 파라미터의 프로그래밍 방식 이름

    파라미터 이름을 가져오는 방법에 대한 자세한 내용은 Programmatically Specify Block Parameters and Properties 항목을 참조하십시오.

이 예제에서는 블록 경로를 가져오기에 충분한 정보를 갖고 있습니다. 블록 경로는 모델의 루트에서 해당 블록까지 모델 계층 구조를 따라가는 경로로, 계층 구조의 각 단계는 슬래시로 구분됩니다. 블록 경로를 변수에 저장합니다.

blockPath = "myModel/mySubsystem/myBlock";

쿼리하고자 하는 파라미터의 프로그래밍 방식 이름을 가져옵니다. 이를 위한 한 가지 방법은 해당 블록의 문서를 확인하는 것입니다. 블록의 문서 페이지의 파라미터 섹션에서 해당 파라미터를 찾습니다. 그런 다음 프로그래밍 방식의 사용법 섹션에서 프로그래밍 방식 이름을 확인합니다.

이 예제의 경우 Gain 페이지에서 파라미터 이름을 확인하십시오. 이득 값을 저장하는 파라미터의 프로그래밍 방식 이름은 Gain입니다.

파라미터 값을 가져옵니다.

gainValue = get_param(blockPath,"Gain");

블록에 대해 더 많은 연산을 실행하고자 하는 경우 블록 경로 대신 블록 핸들을 사용해 보십시오. 블록 경로에서 핸들을 가져오려면 getSimulinkBlockHandle 함수를 사용하십시오.

h = getSimulinkBlockHandle(blockPath);

핸들을 사용하여 파라미터 값을 가져옵니다.

gainValue = get_param(h,"Gain");

수백 개의 블록을 포함하는 복잡한 계층 구조의 모델을 불러왔다고 가정하겠습니다. 모델의 핸들은 변수 h에 저장되어 있습니다. 이름에 핵심 문구 Low-Pass Filter가 포함된 모든 Transfer Fcn 블록의 전달 함수 계수를 가져옵니다.

계수의 값을 가져오려면 다음 2개의 입력이 필요합니다.

  • 파라미터 값을 쿼리하고자 하는 각 블록의 핸들 또는 경로

    핸들과 경로를 가져오는 방법에 대한 자세한 내용은 Get Handles and Paths 항목을 참조하십시오.

  • 값을 쿼리하고자 하는 파라미터의 프로그래밍 방식 이름

    파라미터 이름을 가져오는 방법에 대한 자세한 내용은 Programmatically Specify Block Parameters and Properties 항목을 참조하십시오.

이름에 핵심 문구 Low-Pass Filter가 포함된 Transfer Fcn 블록의 핸들을 가져옵니다. find_system 함수를 사용합니다.

hBlocks = find_system(h,Regexp="on",CaseSensitive="on",Type="Block",BlockType="TransferFcn",Name=".*Low-Pass Filter.*")

전달 함수 계수를 저장하는 파라미터의 프로그래밍 방식 이름을 가져옵니다. Transfer Fcn 블록의 문서 페이지 Transfer Fcn를 엽니다. 파라미터 섹션에서 쿼리하고자 하는 파라미터를 찾습니다. 그런 다음 프로그래밍 방식의 사용법 섹션에서 프로그래밍 방식 이름을 확인합니다. 분자 계수는 프로그래밍 방식 이름이 Numerator인 파라미터에 저장되고, 분모 계수는 프로그래밍 방식 이름이 Denominator인 파라미터에 저장됩니다.

계수 값을 가져옵니다.

numeratorCoeffs = get_param(hBlocks,"Numerator");
denominatorCoeffs = get_param(hBlocks,"Denominator");

myModel1과 myModel2라는 두 가지 모델을 불러왔다고 가정하겠습니다. 두 모델의 메시지 파라미터 값이 동일한지 확인합니다.

모델 파라미터 목록을 가져옵니다.

params = get_param("myModel1","ObjectParameters");

이 함수는 구조체를 반환합니다. 모델 파라미터 이름이 포함된 셀형 배열을 만듭니다.

paramNames = fieldnames(params);

메시지 파라미터는 약어 Msg로 끝납니다. 약어 Msg를 포함하는 모든 모델 파라미터 이름을 가져옵니다.

msgNames = paramNames(contains(paramNames,'Msg'));

두 모델의 메시지 파라미터 값을 비교합니다. 서로 다른 값을 가진 파라미터의 이름을 표시합니다.

mdl = ["myModel1";"myModel2"];

for i=1:length(msgNames)
    val = get_param(mdl,msgNames{i});
    if(length(unique(val))~=1)
        disp(msgNames{i})
    end
end

get_param 함수를 사용하여 쿼리할 수 있는 일부 파라미터는 허용되는 값의 개수가 유한합니다. 예를 들어, Sum 블록의 아이콘 형태 파라미터는 rectangular 또는 round의 두 값 중 하나만 가질 수 있습니다. 파라미터에 사용할 수 있는 값 옵션의 목록을 가져오려면, 파라미터 값을 가져올 때와 동일한 방식으로 get_param 함수를 사용하되, 함수 입력에 지정하는 파라미터 이름에 접두사 options@을 추가합니다.

myModel이라는 모델을 불러왔다고 가정하겠습니다. 모델에는 mySquareBlock이라는 Square 블록, mySubsystemBlock이라는 마스크 처리된 Subsystem 블록 및 주석이 포함되어 있습니다.

Square 블록의 Output signal type 파라미터에 대한 옵션 목록을 가져옵니다.

funcoptions = get_param("myModel/mySquareBlock","options@OutputSignalType")
funcoptions = 1×3 cell
    {'auto'}    {'real'}    {'complex'}

Subsystem 블록의 마스크 처리된 서브시스템 파라미터 Read/Write permissions에 대한 옵션 목록을 가져옵니다.

get_param("myModel/mySubsystemBlock","options@Permissions")
ans = 1×3 cell
    {'ReadWrite'}    {'ReadOnly'}    {'NoReadOrWrite'}

AlgebraicLoopMsg라는 모델 파라미터에 대한 옵션 목록을 가져옵니다.

get_param("myModel","options@AlgebraicLoopMsg")
ans = 1×3 cell
    {'none'}    {'warning'}    {'error'}

주석의 가로 정렬에 대한 옵션 목록을 가져옵니다. 이렇게 하려면 주석의 핸들을 가져옵니다.

h = find_system(gcs,FindAll="on",Type="annotation");

그런 다음, 옵션 목록을 가져옵니다.

get_param(h,"options@HorizontalAlignment")
ans = 1×3 cell
    {'left'}    {'center'}    {'right'}

변수로 설정된 마스크 파라미터의 값을 가져오려면 get_param 함수를 사용합니다. 함수 입력에 지정하는 파라미터 이름에 접두사 value@을 추가합니다.

참고

값 없이 string형을 유형 옵션으로 사용하는 팝업 및 라디오 버튼 마스크 파라미터의 경우, 선택된 옵션의 인덱스가 평가된 값으로 사용됩니다.

myBlock이라는 마스크 처리된 Subsystem 블록을 포함하며 이름이 myModel인 모델이 있다고 가정하겠습니다. 마스크에는 파라미터 이름이 magnitude인 슬라이더가 있습니다. 파라미터의 값은 기본 변수로 설정되어 있습니다. 이 변수의 이름과 값을 가져옵니다.

먼저, 이름을 가져옵니다. 이렇게 하려면 get_param 함수를 사용하여 magnitude 파라미터의 값을 가져옵니다. 파라미터가 변수로 설정되어 있으므로 파라미터 값을 쿼리하면 변수 이름이 반환됩니다.

blockPath = "myModel/myBlock";
varName = get_param(blockPath,"magnitude");

그런 다음, 변수 값을 가져옵니다. 이전과 동일한 명령을 사용하되, 파라미터 이름 앞에 접두사 value@을 추가합니다.

varValue = get_param(blockPath,"value@magnitude");

myModel이라는 모델을 불러왔다고 가정하겠습니다. 전역 파라미터 이름의 목록을 가져옵니다. 그런 다음, CurrentSystem이라는 전역 파라미터의 값을 가져옵니다.

전역 파라미터 이름의 목록을 가져오려면 Simulink 루트 파라미터 이름과 모델 파라미터 이름의 차집합을 구합니다.

모델 파라미터의 이름을 가져옵니다.

modelParamNames = fieldnames(get_param("myModel","ObjectParameters"));

Simulink 루트 파라미터의 이름을 가져옵니다.

rootParamNames = fieldnames(get_param(0,"ObjectParameters"));

전역 파라미터의 이름을 가져옵니다.

globalParamNames = setdiff(rootParamNames,modelParamNames);

CurrentSystem이라는 전역 파라미터의 값을 가져옵니다.

globalparamval = get_param(0,"CurrentSystem")
globalparamval = 
'myModel'

입력 인수

모두 축소

쿼리할 대상 객체나 루트의 핸들, 이름 또는 경로. 대상 객체를 지정할 수 있는 방법은 대상 객체 유형마다 다릅니다.

  • 모델 — 모델 이름 또는 핸들.

  • 서브시스템 — 서브시스템 이름 또는 핸들.

  • 라이브러리 — 라이브러리 이름 또는 핸들.

  • 블록 — 블록 경로 또는 핸들.

  • 선 — 선 핸들.

  • 포트 — 포트 핸들.

  • 포트 요소 — 모델 이름 또는 서브시스템 블록 경로, 슬래시, 포트 이름 또는 버스 요소 경로로 구성된 경로입니다. 버스 요소 포트의 경우, 버스 요소 경로는 최상위 버스에서 타깃 요소까지의 계층 구조를 제공하며, 계층 구조의 각 이름을 점으로 구분합니다.

핸들과 경로를 가져오는 방법에 대한 자세한 내용은 Get Handles and Paths 항목을 참조하십시오. 핸들의 형식을 숫자형 스칼라 또는 숫자형 벡터로 지정합니다. 이름 및 경로의 형식을 string형, string형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정합니다.

현재 Simulink 세션의 전역 파라미터 및 모델 파라미터를 포함하여 루트 파라미터 이름을 가져오려면 0을 지정하십시오.

  • 전역 파라미터에는 편집기 기본 설정과 Simulink Coder™ 파라미터가 포함됩니다.

  • 모델 파라미터에는 구성 파라미터, Simulink Coder 파라미터, Simulink Code Inspector™ 파라미터가 포함됩니다.

예: "myModel/mySubsystem/myBlock"

데이터형: double | array of doubles | string | string array | character vector | cell array of character vectors

파라미터, 속성 또는 특성의 이름으로, string형 또는 문자형 벡터로 지정됩니다. 일부 이름은 대/소문자를 구분합니다.

다음 표에는 특수 사례가 나와 있습니다.

파라미터값
ObjectParameters

지정된 객체의 파라미터 이름이 구조체형 배열의 각 필드에 들어 있습니다.

DialogParameters

블록 대화 상자의 파라미터 이름이 구조체형 배열의 각 필드에 들어 있습니다. 블록에 마스크가 있는 경우 함수는 대신 마스크 파라미터를 반환합니다.

ParameterValuesStruct

마스크 처리된 블록의 파라미터 이름과 현재의 파라미터 값이 들어 있는 구조체입니다.

파라미터, 속성 또는 특성에 관한 자세한 내용은 해당하는 문서 페이지에서 프로그래밍 방식의 사용법 내용을 참조하십시오. 예를 들면 다음과 같습니다.

예: "ObjectParameters"

예: "Solver"

예: "SimulationCommand"

데이터형: string | character vector

출력 인수

모두 축소

파라미터 값으로, 파라미터 유형이 결정하는 형식으로 반환됩니다. 여러 객체를 지정하는 경우 출력은 셀형 배열입니다.

다음 표에는 특수 사례가 나와 있습니다.

파라미터값
ObjectParameters

지정된 객체의 파라미터 이름이 구조체형 배열의 각 필드에 들어 있습니다.

DialogParameters

블록 대화 상자의 파라미터 이름이 구조체형 배열의 각 필드에 들어 있습니다. 블록에 마스크가 있는 경우 함수는 대신 마스크 파라미터를 반환합니다.

get_param(0,"ObjectParameters")를 지정하여 루트 파라미터를 가져오는 경우 value 출력은 루트 파라미터 이름이 구조체의 별도 필드로 되어 있는 구조체형 배열입니다. 각 파라미터 필드는 다음 필드를 포함하는 구조체입니다.

  • 유형 — 파라미터 유형 값은 '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 이전에 개발됨