다음: 명령문, 이전: 표현식, 상위 문서: Top   [차례][찾아보기]


9 평가

보통 간단하게 옥타브 명령 처리기에 표현식을 타자하거나 기록철에 저장한 명령을 옥타브에 넣어 평가합니다.

가끔은 eval 함수가 행하는 것처럼 이미 계산하여 문자열에 담긴 표현식을 풀어야 할 때가 있습니다.

eval (시도)
eval (시도, 예비)

문자열 시도를 구문 분석하고 옥타브 풀그림처럼 평가합니다.

실행에 실패하면, 선택 문자열인 예비를 실행합니다.

문자열 시도를 현재 문맥에서 실행하여 eval가 반환한 후 모든 결과가 남습니다.

아래 예시는 현재 작업 공간에서 변수 A를 근사치 3.1416로 만듭니다.

eval ("A = acos(-1);");

시도를 평가하는 동안 오류가 발생하면, 아래 예시가 보여주는 것과 같이 예비 문자열 풉니다.

eval ('error ("This is a bad example");',
      'printf ("This error occurred:\n%s\n", lasterr ());');
     -| This error occurred:
        This is a bad example

풀그림 짜기 안내: 임의의 부호 문자열을 실행하는 대신 eval을 오류 색출 과정으로만 사용하려면,  시도/예비 덩어리나 unwind_protect/unwind_protect_cleanup 덩어리를 대신 사용하여 보십시오. 이 요령이 더 빠르며, 임의 부호를 실행하는 데에 발생하는 보안 고려 사항을 안내하지 않습니다.

같이 보기: evalin, evalc, assignin, feval.

evalc 함수는 추가로 표현식을 풀 때 나온 조종대 출력을 모두 잡아냅니다.

s = evalc (시도)
s = evalc (시도, 예비)

문자열 시도를 옥타브 풀그림처럼 구문 분석하고 평가하며, 반환 변수 s에 출력을 잡아넣습니다.

실행에 실패하면, 선택 문자열인 예비를 실행합니다.

이 함수는 eval과 비슷하게 작동하지만, 보통 조종대에 나오는 모든 출력과 경고 문구를 문자열 s에 집어넣습니다.

이 함수를 실행하는 동안에 diary는 비활성화 됩니다. system을 사용하면, system 함수가 자체적으로 잡는 경우 외에는 외부 풀그림이 만든 출력을 잡지 습니다.

s = evalc ("t = 42"), t
  ⇒ s = t =  42

  ⇒ t =  42

같이 보기: eval, diary.


다음: 명령문, 이전: 표현식, 상위 문서: Top   [차례][찾아보기]