Main Content

evalc

MATLAB 표현식 실행 및 결과 캡처

설명

예제

results = evalc(expression)expression으로 표현되는 MATLAB® 코드를 실행하고 일반적으로 명령 창에 출력되는 결과를 results에 캡처합니다.

참고

보안 고려 사항: 신뢰할 수 없는 사용자 입력값을 사용하여 evalc 함수를 호출할 때는 예기치 않은 코드 실행을 방지하기 위해 입력값의 유효성을 검사하십시오. 신뢰할 수 없는 사용자 입력값의 예로는 모르는 사용자나 통제할 수 없는 사용자의 입력값을 들 수 있습니다. 이 우려 사항을 해결해야 하는 경우 다음과 같은 접근 방법을 고려하십시오.

  • evalc에 대한 입력값의 유효성을 검사합니다. 먼저 허용되는 동작에 대해 알아봅니다. 그런 다음, 이와 다른 동작을 발견했다면 실행을 허용하지 마십시오.

  • evalc 함수를 다른 대안으로 대체합니다. 자세한 내용은 eval 함수의 대안 항목을 참조하십시오.

성능 향상을 위한 고려 사항: 대부분의 경우 evalc 함수를 사용하는 것은 다른 MATLAB 함수나 언어 구문을 사용하는 것에 비해 효율성도 떨어지며 결과로 생성되는 코드는 읽고 디버그하기가 더 어려울 수 있습니다. evalc의 대안을 사용하는 방안을 고려하십시오.

[results,output1,...,outputN] = evalc(expression)은 추가적으로 expression의 출력값을 지정된 변수로 반환합니다.

예제

모두 축소

evalc를 사용하여 표현식 magic(5)를 실행하고 결과를 저장합니다.

results = evalc('magic(5)')
results =
    
    '
     ans =
     
         17    24     1     8    15
         23     5     7    14    16
          4     6    13    20    22
         10    12    19    21     3
         11    18    25     2     9
     
     '

입력 인수

모두 축소

실행할 표현식으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. expression은 유효한 MATLAB 표현식이어야 하며 MATLAB 키워드를 포함하지 않아야 합니다. 단어가 MATLAB 키워드인지 확인하려면 iskeyword 함수를 사용하십시오.

예: evalc('magic(5)')

출력 인수

모두 축소

캡처된 명령 창 출력값으로, 문자형 배열로 반환됩니다. 캡처된 출력값의 개별 라인은 \n 문자로 구분됩니다.

실행된 표현식의 출력값으로, 임의의 MATLAB 데이터형으로 반환됩니다.

제한 사항

  • evalc를 사용할 때는 함수 diary, more, input이 비활성화됩니다.

  • 익명 함수나 중첩 함수, 또는 중첩 함수를 감싸는 함수 내에서 evalc를 사용하는 경우, 실행된 expression은 변수를 만들지 않습니다.

  • MATLAB 구문 분석기가 코드를 보다 엄격하게 검사하고 처리되지 않은 오류와 기타 예기치 않은 동작이 발생하지 않도록 하려면 evalc 함수에 대한 입력값에 출력 인수를 포함하지 마십시오. 예를 들어, result = evalc(['output = ',expression]) 문은 권장되지 않습니다.

    대신 evalc 함수에 대한 출력 인수를 지정하여 실행된 표현식의 결과를 저장하십시오. 예를 들어, 다음과 같이 합니다.

      [result,output] = evalc(expression)

확장 기능

버전 내역

R2006a 이전에 개발됨