我有功能
function [imag2] = sumIntegral(x,w,a,b,c,p)
imag2 = zeros(p-1,p);
for k = 1:p-1
f = @(t)(1:p-1==k)*Integrand[1](t,x,w,a,b,c);
imag2(k,:) = quadv(f,x(k),x(k+1));
end
,而
Integrand[1]
应该是此功能的real2
[real2,real3,imag2,imag3] = Integrand(t,x,w,a,b,c,p);
问题是,如果我之前定义了Integrand
函数,则会收到错误,因为t
未定义。您知道如何在real2
中将t
写为函数吗?
答案 0 :(得分:0)
你可以创建一个只输出第一个参数的虚拟代理函数:
function real2 = MyIntergrand(t,x,w,a,b,c)
real2 = Integrand(t,x,w,a,b,c);
end
答案 1 :(得分:0)
只需在for循环中定义快速功能
即可function [imag2] = sumIntegral(x,w,a,b,c,p)
imag2 = zeros(p-1,p);
f = @(t)(1:p-1==k)*Integrand[1](t,x,w,a,b,c);
for k = 1:p-1
imag2(k,:) = quadv(f,x(k),x(k+1));
end
end