2010-03-12 3 views
0

다음은 Matlab의 코드입니다. sum = (h/2) * (f (a) + f (b)) + h; Matlab은 f (x) 함수를 호출하려고 할 때 많은 결과가 필요하다고 말합니다. 내 문제는 f (x) 함수와Matlab의 하위 함수에 값을 전달하는 방법 출력 오류가 발생합니까?

function Trapezoid_Uniform(a,b,n) 
    h = (b - a)/n; 
    sum = (h/2) * (f(a) + f(b)) + h; 

    for i = 1:n-1 
     x = a + i*h; 
     sum = sum + f(x); 
    end 

    sum = sum*h; 
    disp(sum); 
end 

function f(z) 
    f = exp(z); 
end 

답변

7

함수에서 반환 된 변수를 지정해야합니다. 예를 들어 In C++의 경우 명시적인 return 문이 있습니다. MATLAB은 반환해야하는 것을 어떻게 알 수 있습니까? 서명에 지정합니다 (이 경우 f_of_z).

function f_of_z = f(z) 

f_of_z = exp(z); 

end 
1

예, 문제가 subfunction에 있습니다. 결과를 반환해야합니다 (어쩌면 주 함수에서도이를 수행해야합니다). 내가 테스트 여기에 MATLAB이없는

function out = f(z) 
out = exp(z) 
end 
1

대신

function f(z) 
f=exp(z); 
end 

당신은 어쨌든 F에 대한 코드가 있어야 작성해야

function y = f(z) 
    y = exp(z); 
end 
관련 문제