2013-04-02 42 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