coder.extrinsic
함수를 외재적 함수로 선언하고 MATLAB에서 실행
구문
설명
coder.extrinsic(
은 function
)function
을 외재적 함수로 선언합니다. 코드 생성기가 외재적 함수의 본문에 대해 코드를 생성하지 않고 대신 MATLAB® 엔진을 사용하여 호출을 실행합니다. 이 기능은 실행하는 동안 MATLAB 엔진이 사용 가능한 상황에서만 이용할 수 있습니다. MATLAB 엔진이 사용 가능한 상황의 예로는 MEX 함수 실행, Simulink® 시뮬레이션, 코드 생성 시점(컴파일 타임이라고도 함)의 함수 호출이 있습니다.
코드 생성기는 독립 실행형 코드를 생성할 때 외재적 함수가 이 외재적 함수를 호출한 함수에 영향을 주는지 확인합니다. 외재적 함수가 자신을 호출한 함수에 영향을 미치지 않는 경우라면(예를 들어 외재적 함수가 플롯을 표시하는 함수라면) 코드 생성기는 코드 생성을 계속 진행하지만 생성하는 코드에서 이 외재적 함수를 제외시킵니다. 외재적 함수가 자신을 호출한 함수에 영향을 미치는 경우라면(예를 들어 외재적 함수가 자신을 호출한 함수에 값을 반환한다면) 코드 생성기는 컴파일 오류를 생성합니다.
MATLAB은 코드 생성 외의 상황에서는 coder.extrinsic
지시문을 무시합니다.
참고
외재적 함수의 런타임 출력값은 MATLAB 배열이라고도 하는 mxArray
입니다. mxArray
에 대해 유효하게 수행할 수 있는 유일한 작업은 이 출력값을 변수에 저장하거나 다른 외재적 함수에 전달하거나 MATLAB에 반환하는 것입니다. 그 외의 모든 다른 작업, 예를 들어 mxArray
값을 코드 내의 표현식에 사용하는 작업이 가능하려면 사전 할당을 통해 유형이 이미 정의된 변수에 mxArray
를 할당하여 mxArray
를 알려진 유형으로 변환해야 합니다. Working with mxArrays (MATLAB Coder) 항목을 참조하십시오.
coder.extrinsic(function1,...,functionN)
은 function1
부터 functionN
까지를 외재적 함수로 선언합니다.
coder.extrinsic(
은 외재적 함수 호출 전/후에 MATLAB 코드와 생성된 MEX 파일 간의 전역 데이터 동기화를 제어합니다. 기본적으로 코드 생성기는 외재적 함수 호출 전/후에 전역 변수를 동기화하여 MATLAB 코드와 MEX 함수를 최대한 맞춥니다. 이 디폴트 동작의 변경 방법과 시점에 대해서는 Generate Code for Global Data (MATLAB Coder) 항목을 참조하십시오.syn
, function1, ... ,functionN)
예제
입력 인수
제한 사항
coder.extrinsic
을 사용하여 외재적 함수로 선언한 함수에는coder.ceval
(MATLAB Coder)을 사용할 수 없습니다.외재적 함수 호출은 성능에 영향을 줄 수 있습니다. 코드 생성기가 외재적 함수에 전달되는 데이터를 복사한 다음 이 데이터를 실행을 위해 MATLAB으로 전송하기 때문입니다. 반대로 MATLAB은 출력 데이터를 다시 MEX 함수 환경으로 전송하기 위해 출력 데이터를 복사합니다.
코드 생성기는 프라이빗 폴더에 있는 함수를 호출할 때
coder.extrinsic
사용을 지원하지 않습니다.코드 생성기는 로컬 함수를 호출할 때
coder.extrinsic
사용을 지원하지 않습니다.코드 생성은 다음 항목에 해당하는 외재적 함수 또는 다음 항목을 포함하는 외재적 함수에 전달된 값이나 그러한 외재적 함수에서 반환된 값을 지원되지 않습니다.
핸들 클래스
함수 핸들
불투명한(opaque로 선언된) 값(
coder.opaque
(MATLAB Coder) 항목 참조)
팁
코드 생성기는
plot
,disp
,figure
처럼 널리 쓰이는 여러 MATLAB 시각화 함수를 자동으로 외재적 함수로 처리합니다. 이러한 함수는coder.extrinsic
을 사용하여 명시적으로 외재적 함수로 선언할 필요가 없습니다.외재적 함수로 선언해야 하는 함수를 알아내려면
coder.screener
(MATLAB Coder) 함수를 사용하십시오. 이 함수는 코드 생성 준비 툴을 실행하여 MATLAB 코드에 코드 생성이 지원되지 않는 기능과 함수가 있지 않은지 검사합니다. Check Code Using the Code Generation Readiness Tool 항목을 참조하십시오.
확장 기능
버전 내역
R2011a에 개발됨