[英]Matlab: how to work with different outputs of function
我有功能
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
未定義。 您知道如何在t
real2
編寫為函數嗎?
您可以制作一個僅輸出第一個參數的虛擬代理功能:
function real2 = MyIntergrand(t,x,w,a,b,c)
real2 = Integrand(t,x,w,a,b,c);
end
只需在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.