全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3921 7
2015-08-16
小弟初学乍道,做了一个R的函数程序,但是在运行的过程中出现了问题,具体程序和问题如下:
程序设置:


mr=function(f0,num,pm,dt,N)#pm=c(ratio,Kfac1,Kfac2,Kfac3,advpart,advfresh)
{

f=matrix(nrow=2,ncol=N)
f[1,1]=f0[1]
f[2,1]=f0[2]

for(t in 1:(N-1))
{
  ds1=num*((pm[1]*(pm[2]+pm[3]+pm[4])*f[1,t])^(1/2))
  f[1,t+1]=f[1,t]+dt*ds1
  

  ds2=f[1,t]*(pm[5]+pm[6])
  f[2,t+1]=f[2,t]+dt*ds2

  }
f
}

在运行赋值的时候赋值如下
pm=c(0.4,0.31,0.07,0.12,0.3,0.15)
BJ=mr((0.25,0.35),2.3,pm,0.001,10000)#注,其中我希望f0[1]=0.25,f0[2]=0.35
但是plot(BJ)的时候,只显示两个点即0.25和0.35,而单独检查后面num,dt部分都是没有的,程序报告如下
> f
错误: 找不到对象'f'
> f0
[1] 0.25 0.35
> num
错误: 找不到对象'num'
> dt
function (x, df, ncp, log = FALSE)
{
    if (missing(ncp))
        .Call(C_dt, x, df, log)
    else .Call(C_dnt, x, df, ncp, log)
}
<bytecode: 0x07550cd4>
<environment: namespace:stats>
> N
错误: 找不到对象'N'
>

我猜测应该是矩阵函数的赋值上有问题,求教各位指点,小弟跪谢!!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-8-16 12:10:41
BJ=mr((0.25,0.35),2.3,pm,0.001,10000)你确定这个能跑?而不是BJ=mr(c(0.25,0.35),2.3,pm,0.001,10000)?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-16 14:16:47
bllhm 发表于 2015-8-16 12:10
BJ=mr((0.25,0.35),2.3,pm,0.001,10000)你确定这个能跑?而不是BJ=mr(c(0.25,0.35),2.3,pm,0.001,10000)?
我发帖的时候写错了,不好意思。
我跑的是你说的这个,但是仍然不行,只跑出来前两个数字
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-16 21:34:57
f=matrix(0,nrow=2,ncol=N)试试
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-16 21:37:54
num和dt 是形参当然不会有啦
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-17 18:20:36
huyiustc 发表于 2015-8-16 21:34
f=matrix(0,nrow=2,ncol=N)试试
还是没有运行整个函数,绘图的时候只是画了我赋给f0的这个向量的两个点
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群