2013-05-05 111 views
1

如何在調用函數時使用改變的輸入?我有問題是,我必須寫在Matlab代碼用於拋物型偏微分方程的顯式方法和初始條件u(x,0) =sin(pi*x)改變輸入的Matlab函數輸入

在調用函數時我寫

explicit(0,0,sin(pi*x),0,0,1,0,1,3,2,0.25,0.25)

的其餘的輸入函數是指不同的值和邊界條件。

其中sin(pi*x)是指代碼問題區域給我。在代碼中自行我寫這個邊界條件

for j = 1:(n+2) 
i = (n+2) 
x = (a -h) + h*j 
u(i,j) = Y_below 
end 

Y_belowu(x,0) = sin(pi*x)

這個工程到底我希望它當邊界條件Y_below等於任何數字。我不知道如何調用我的功能時如何使用更改x

我試過谷歌和最接近這個我可以得到的是varargin,但我不知道如何使用它。 我是Matlab新手,這是我必須爲作業編寫的第一個程序。任何幫助將不勝感激!

+0

你是什麼意思改變x?調用該函數後值是否改變,還是僅僅是一個可能有不同長度的向量? – 2013-05-06 13:16:31

+0

x根據函數內的循環改變它的值 – user2352769 2013-05-06 14:17:17

回答

0

我不知道如果這是你在找什麼,但
如果你定義的功能如下:

function output = myfunction(input1, input2, varargin) 

然後varargin是收集所有
其他參數分開形式輸入1一infunction參數,input2。這意味着,
如果調用下面這個函數:

outp = myfunction(inp1, inp2, inp3, inp4, inp5); 

那麼這個函數中的以下將舉行:

input1 = inp1; 
input2 = inp2; 
varargin{1} = inp3; 
varargin{2} = inp4; 
varargin{3} = inp5; 

您可以檢查(函數內)的 傳遞的參數數目與nargin

+0

這確實有助於至少理解varargin函數,但該函數並不完全符合我的想法。然而,我只是決定在它是像sin(pi * x)這樣的人進入函數代碼本身時才進入邊界,之後它就可以正常工作。 – user2352769 2013-05-06 09:24:01