我开始使用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 :(得分:0)
将函数的返回值保存为对象,在本例中为列表。然后,您可以在调用[[
时使用plot
表示法提取列表的组成部分:
x <- Green.Ampt(c(0.65,16.7,0.34,10))
plot(x[[1]], x[[2]])
结果如下: