주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

MATLAB 결정 횟수

메트릭 ID

slcomp.MATLABDecisions

설명

이 메트릭을 사용하여 단위 또는 구성 요소와 관련된 MATLAB® 코드의 결정 수를 계산합니다.

이 메트릭은 다음을 분석합니다.

  • MATLAB 함수(Simulink®MATLAB Function 블록 및 Interpreted MATLAB Function 블록 포함)

  • Stateflow® 객체의 MATLAB 함수

  • MATLAB 파일의 함수 및 메서드

일반적인 MATLAB 키워드에 대한 결정 횟수

다음 표는 지표가 일반적인 MATLAB 키워드에 대한 결정 횟수를 계산하는 방법을 보여줍니다. 이 메트릭은 checkcode 함수의 순환 복잡도 값을 사용합니다. 순환 복잡도 값에 대한 자세한 내용은 Measure Code Complexity Using Cyclomatic Complexity를 참조하세요.

 결정 횟수 표

계산 세부사항

메트릭:

  • 코드 분석기에서 계산한 순환 복잡성을 취하고 기본 경로를 제외하기 위해 1을 빼서 MATLAB 코드의 결정 수를 계산합니다. 자세한 내용은 checkcodeMeasure Code Complexity Using Cyclomatic Complexity를 참조하세요.

  • if, elseif, while, for, parfor, trycase 문의 결정을 계산합니다.

  • else, otherwisecatch 문은 기본 경로를 형성하므로 무시합니다.

  • 모델을 컴파일하지 않습니다. 메트릭은 정적 정보만 고려합니다.

  • 구문 오류가 없는 MATLAB 코드만 분석합니다.

수집

이 메트릭에 대한 데이터를 수집하려면 다음 안내를 따르세요.

  • 모델 유지 관리 대시보드의 Design Cyclomatic Complexity Breakdown 섹션에서 Run metrics for widget 아이콘을 클릭합니다. 결정의 분포는 MATLAB 행과 분포 열에 표시됩니다. 각 모델 구성 요소에 대한 MATLAB 결정 횟수를 표시하는 테이블을 보려면 분포에서 구간 중 하나를 클릭하세요.

  • 메트릭 식별자 slcomp.MATLABDecisions와 함께 getMetrics를 사용하세요.

결과

이 메트릭의 경우 metric.Result 인스턴스는 장치 또는 구성 요소의 각 레이어와 연결된 MATLAB 코드의 MATLAB 결정 수로 Value를 반환합니다.

예제

다음 코드를 사용하여 MATLAB Function 블록만 포함하는 단위가 있다고 가정합니다.

function y = fcn(u)
    if u < 0
        % one decision
        y = -1*u;
    else
        % default path
        % zero decisions
        y = u;
    end
end

if-else 문의 경우 if 문은 하나의 결정을 나타내고 else 문은 기본 동작을 나타내기 때문에 결정 수는 1입니다. 결정이 내려지지 않은 경우 실행 경로는 기본 경로를 따릅니다.

  • MATLAB Function 블록에 대한 입력이 0보다 작은 경우 MATLAB Function 블록의 출력은 입력에 음수를 곱한 값입니다.

  • 그렇지 않으면 기본적으로 MATLAB Function 블록의 출력은 MATLAB Function 블록의 입력과 동일합니다.

이 예에서 MATLAB 결정의 수는 1개입니다.

코드에 elseif 문이 포함되어 있다고 가정합니다.

function y = fcn(u)
    if u < 0
        % one decision
        y = -1*u;
    elseif u == 1
        % one decision
        y = 1;
    elseif u == 2
        % one decision
        y = 2;
    else
        % default path
        % zero decisions
        y = u;
    end
end
MATLAB 결정의 수는 코드에 elseif 문이 추가될 때마다 1씩 증가합니다. if 문 1개, elseif 문 2개, else 문 1개가 포함된 MATLAB 코드에는 세 가지 결정이 포함되어 있습니다. else 문은 기본 경로의 일부이므로 else 문은 결정 수에 영향을 주지 않습니다. 기본 상태에 도달하기 위한 결정이 이루어지지 않기 때문에 기본 경로는 결정 횟수에 포함되지 않습니다.

참고 항목

| | |

도움말 항목