2013-04-02 48 views
0

不同的输出工作,我已经得到了功能Matlab的:如何与功能

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,real3,imag2,imag3] = Integrand(t,x,w,a,b,c,p);

的问题是real2,如果我定义Integrand函数之前,我得到一个错误,因为t是未定义的。你知道如何在t中写real2作为函数吗?

+3

你不介意以更准确地你的问题和更清晰的方式?提前致谢。 – fpe

+0

感谢您的快速解答。我想知道的是如何在t中访问real2。我想宣布[real2,real3,imag2,imag3] = Integrand(t,x,w,a,b,c,p); 首先写下f = @(t)(1:p-1 == k)* real2,但我总是得到错误,那t是未定义的 – Lari

回答

0

你可以只让一个虚拟的代理功能,只有输出的第一个参数:

function real2 = MyIntergrand(t,x,w,a,b,c) 
    real2 = Integrand(t,x,w,a,b,c); 
end 
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