Main Content

차트의 동작 언어 수정하기

Simulink® 모델의 Stateflow® 차트에는 상태 동작과 천이 동작의 구문을 정의하는 동작 언어 속성이 있습니다. 차트 캔버스의 왼쪽 아래 코너에 있는 아이콘은 차트의 동작 언어를 나타냅니다.

  • MATLAB®을 동작 언어로 사용합니다.

  • C를 동작 언어로 사용합니다.

차트 속성 대화 상자의 동작 언어 상자에서 차트의 동작 언어를 변경할 수 있습니다. 자세한 내용은 동작 언어 구문으로서 MATLAB과 C의 차이점 항목을 참조하십시오.

디폴트 동작 언어 변경하기

MATLAB은 새로운 Stateflow 차트에 대한 디폴트 동작 언어 구문입니다. C를 동작 언어로 사용하는 차트를 만들려면 다음을 입력하십시오.

sfnew -C

새로운 차트의 디폴트 동작 언어를 변경하려면 sfpref 함수를 사용하십시오. 예를 들어, 새로운 차트의 동작 언어로 C를 설정하려면 다음과 같이 입력하십시오.

sfpref(ActionLanguage="C");

MATLAB을 동작 언어로 사용하는 경우의 자동 수정

MATLAB을 동작 언어로 사용하는 Stateflow 차트는 일반적인 C 구문을 MATLAB 구문으로 자동 수정합니다.

  • a++a-- 같은 증가 연산 및 감소 연산. 예를 들어, a++a = a+1로 변경됩니다.

  • a += b, a –= b, a *= b, a /= b 같은 대입 연산. 예를 들어, a += ba = a+b로 변경됩니다.

  • a != b!a 같은 평가 연산. 예를 들어, a != ba ~= b로 변경됩니다.

  • 주석 마커 ///* */%로 변경됩니다.

이 기본 설정을 비활성화하려면 sfpref 함수를 사용하십시오.

sfpref(EnableLabelAutoCorrectionForMAL=false);

C 구문에서 MATLAB 구문으로 변환

비어 있지 않은 차트의 경우 동작 언어 속성을 C에서 MATLAB으로 변경하면 차트의 상단에 알림이 표시됩니다. 알림은 일부 C 구문을 MATLAB 구문으로 변환하는 옵션을 제공합니다. 알림에서 링크를 클릭하면 Stateflow가 차트의 구문을 변환합니다. 변환되는 C 구문 구성은 다음과 같습니다.

  • 0부터 시작하는 인덱싱.

  • a++a-- 같은 증가 연산 및 감소 연산. 예를 들어, a++a = a+1로 변경됩니다.

  • a += b, a –= b, a *= b, a /= b 같은 대입 연산. 예를 들어, a += ba = a+b로 변경됩니다.

  • a %% b, a >> b, a << b 같은 이항 연산. 예를 들어, a %% brem(a,b)로 변경됩니다.

  • a ^ b, a & b, a | b 같은 비트별 연산. 예를 들어, 차트 속성 C 언어 비트 연산 사용을 선택하면 a ^ bbitxor(a,b)로 변경됩니다.

  • C 스타일 주석 마커. 예를 들어, ///* */%로 변경됩니다.

차트에 MATLAB으로 변환할 수 없는 C 구문이 포함된 경우, Stateflow는 대화 상자에 메시지를 표시합니다. 경고 링크를 클릭하면 진단 뷰어에 경고가 표시됩니다. 지원되는 구문의 변환을 계속할지 여부를 선택합니다. MATLAB으로 변환되지 않는 C 구문은 다음과 같습니다.

  • casttype을 사용한 명시적 형변환

  • &, *, := 같은 연산자

  • 사용자 지정 데이터

  • ml 연산자를 사용한 작업 공간 변수 액세스

  • 코드 생성에서 지원되지 않는 함수

  • 16진수 및 단정밀도 표기법

  • 컨텍스트 의존 상수

참고 항목

관련 항목