2015-04-04 54 views
0

我開始使用R作爲計算流體動力學課程,並且開始我們應該創建一個函數,其中列出了兩個數據列表。所以我寫了這個功能:然後在函數中繪製數據列表然後在函數中

Green.Ampt=function(param){ 
    k=param[1] 
    Psi=param[2] 
    DTheta=param[3] 
    h=param[4] 
    F1=0.65 
    F1=0.65 
    vector.F2<-1:h 
    vector.f<-1:h 
    for(tempo in 1 : h){ 
     DeltaF=1 
     while(DeltaF>0.01) { 
      F2=k*tempo+Psi*DTheta*log(F1/(Psi*DTheta)+1) 
      DeltaF=abs(F1-F2) 
      F1=F2 
     } 
     vector.F2[tempo]=F2 
     vector.f[tempo]= k*(Psi*DTheta/F2+1)} 
    OUT<-list(vector.F2, vector.f) 
    return(OUT) 
} 

我用這個Green.Ampt(c(0.65,16.7,0.34,10))運行功能,那麼我控制的控制檯已經收到下面的輸出:

[[1]] 
[1] 3.152985 4.745484 6.077012 7.284812 8.404389 9.469498 
[7] 10.490538 11.474561 12.434380 13.371189` 

[[2]] 
[1] 1.8205417 1.4277289 1.2573215 1.1566294 1.0891396 1.0397461 
[7] 1.0018123 0.9716419 0.9468141 0.9260188` 

我想給這兩個系列數據的名字,因爲我需要繪製它們,但我在這方面並不成功。

+0

MYLIST = myfunction的(C(X,Y));名稱(mylist)= c(「part.1」,「part2」) – Henk 2015-04-04 11:48:30

回答

0

將函數的返回值保存爲一個對象,在這種情況下它將成爲一個列表。然後,可以提取使用[[符號在呼叫列表中的組件以plot

x <- Green.Ampt(c(0.65,16.7,0.34,10)) 
plot(x[[1]], x[[2]]) 

下面是結果:

enter image description here

相關問題