下面是我在Matlab中的代码我遇到了行sum =(h / 2)*(f(a)+ f(b))+ h的问题; Matlab说当我尝试调用f(x)函数时,我需要输出很多输出。我的问题是f(x)函数
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
答案 0 :(得分:7)
您需要在函数中指定返回的变量。例如,在C ++中有一个明确的return
语句 - MATLAB如何知道需要返回什么?您可以在签名中指定它,即在这种情况下f_of_z
。
function f_of_z = f(z)
f_of_z = exp(z);
end
答案 1 :(得分:1)
是的,你的问题在于子功能:它应该返回一个输出(也许你的主要功能也应该这样做);
而不是
function f(z)
f=exp(z);
end
你应该写
function out = f(z)
out = exp(z)
end
答案 2 :(得分:1)
我这里没有matlab来测试,反正f的代码应该是
function y = f(z)
y = exp(z);
end