다음: 다른 문맥에서 평가, 상위 문서: 풀이 [차례][찾아보기]
feval
함수를 사용하면 함수 이름이 들어있는 문자열로 함수를 호출할 수 있습니다. 이는 사용자 제공 함수가
필요한 함수를 짤 때 유용합니다. feval
함수는 첫 번째 매개변수로 호출할 함수 이름을 받고, 나머지 매개변수로
호출할 함수의 매개변수를 받습니다.
다음 예시는 뉴턴 방법을 사용하여 한 변수의 근을 찾는 사용자 제공 함수를 feval
로 불러오는 단세포적
예시입니다.
function result = newtroot (fname, x) # usage: newtroot (fname, x) # # fname : a string naming a function f(x). # x : initial guess delta = tol = sqrt (eps); maxit = 200; fx = feval (fname, x); for i = 1:maxit if (abs (fx) < tol) result = x; return; else fx_new = feval (fname, x + delta); deriv = (fx_new - fx) / delta; x = x - fx / deriv; fx = fx_new; endif endfor result = x; endfunction
위는 단지 사용자 제공 함수를 호출하는 모습을 보여주는 예시에 불과하므로 너무 진지하게 받아들이지 마십시오. 더 정교한 셈법을 사용하는 것
외에도, 실제 부호는 매개변수의 개수와 자료형인지 확인하고, 제공받는 함수가 제대로인지도 분명하게 하는 등의 기능이 덧붙습니다.
수치
객체 서술에서 수치 객체 서술 방법을 참고하고,
변수 상태에서 exist
함수에 대한 기술을 참고하십시오.
이름인 함수를 평가합니다.
두 번째 매개변수부터는 지정한 함수의 매개변수로 사용합니다. 예를 들어, 아래 표현식은
feval ("acos", -1) ⇒ 3.1416
함수 acos
에 매개변수 ‘-1’을 딸려 호출합니다.
함수 feval
을 모든 함수 다루개에 사용하여도 됩니다.(함수 다루개 참고) 원래는 feval
가 문자열로 사용자 제공 함수를 호출하는 유일한 방법이었지만, 지금은 함수 다루개로도 청소기 구문 때문에 사용자 제공 함수를 호출할 수 있습니다. 예를 들어,
f = @exp; feval (f, 1) ⇒ 2.7183 f (1) ⇒ 2.7183
두 방법 모두 f에 참조된 함수를 호출합니다. f가 함수 다루개인지, 문자열인 함수 이름인지,
붙박이로 정의한 함수인지 사용하기 전에 알 수 없으면, feval
을 대신 사용합니다.
사용자 경로에 꼭 필요하지는 않은 사용자 대본 기록철을 불러오는 비슷한 함수 run
가 존재합니다.
현재 작업 공간에서 대본을 실행합니다.
옥타브 적재 경로에 지정한 자료방에 있고 확장자가 ".m"인 대본은 간단하게 이름만 적으면
작동합니다. 적재 경로에 없는 대본은 run
을 사용하여야 합니다.
기록철 이름 대본은 기록철 이름만 있어도 되고, 절대 경로가 있어도 되고, 상대 경로가 있어도 되며, 확장자도 있어도 되고, 없어도 됩니다. 확장자를 주지 않으면, 먼저 확장자가 ".m"인 대본을 찾고 나서, 확장자가 없는 대본을 찾습니다.
실행 안내: 대본에 경로 요소가 들어가면,
run
은 먼저 대본을 찾은자료방으로 작업 자료방을 옮깁니다. 그리고 나서 대본을 실행합니다. 마지막으로,
대본이 따로 자료방을 바꾸지 않는한 run
이 원래 작업 자료방으로 돌아갑니다.
다음: 다른 문맥에서 평가, 상위 문서: 풀이 [차례][찾아보기]