Main Content

eval

MATLAB 표현식 실행

설명

예제

eval(expression)expression의 MATLAB® 코드를 실행합니다.

참고

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

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

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

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

예제

[output1,...,outputN] = eval(expression)expression의 출력을 지정된 변수로 반환합니다.

예제

모두 축소

eval을 사용하여 표현식 magic(5)를 실행하고 플로팅합니다.

Z = eval('magic(5)');
mesh(Z)

Mesh plot of Z.

입력 인수

모두 축소

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

예: eval('magic(5)')

출력 인수

모두 축소

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

제한 사항

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

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

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

      output = eval(expression)

확장 기능

버전 내역

R2006a 이전에 개발됨