首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R如何通过使用循环重复函数并将每个答案绑定到原始函数来形成矩阵

R如何通过使用循环重复函数并将每个答案绑定到原始函数来形成矩阵
EN

Stack Overflow用户
提问于 2017-11-03 19:53:05
回答 1查看 35关注 0票数 0

我是编程新手,所以目前我的知识非常有限,但我一直在寻求提高。

我在下面详细介绍了这个名为gillespie的函数,以显示gillespie算法

代码语言:javascript
复制
> print(gillespied)
function (N, T = 100, dt = 1, ...) 
{
    tt = 0
    n = T%/%dt
    x = N$M
    S = t(N$Post - N$Pre)
    u = nrow(S)
    v = ncol(S)
    xmat = matrix(ncol = u, nrow = n)
    i = 1
    target = 0
    repeat {
        h = N$h(x, tt, ...)
        h0 = sum(h)
        if (h0 < 1e-10) 
            tt = 1e+99
        else tt = tt + rexp(1, h0)
        while (tt >= target) {
            xmat[i, ] = x
            i = i + 1
            target = target + dt
            if (i > n) 
                return(ts(xmat, start = 0, deltat = dt))
        }
        j = sample(v, 1, prob = h)
        x = x + S[, j]
    }
}

我使用了

out = gillespied(LV,T=100,dt=1)

我想创建一个对应于这个out结果的第一列的矩阵,但是我想将这个输出结果再重复19次(所以我总共有20次),并将每个结果绑定到我的原始矩阵,这将给我一个20X100的矩阵。

这是我的尝试,我不确定它是否正确,因为当我尝试查看矩阵M时,R会冻结

代码语言:javascript
复制
M=matrix(out[,1],ncol=1)
for (i in 1:19)  {
    out = gillespied(LV, T=100, dt=1)
    M = cbind(M,out[,1])
    i = i+1
}
print(M)

我想知道这是否正确,如果这不是我应该做的调整

EN

回答 1

Stack Overflow用户

发布于 2017-11-03 20:03:38

您不需要递增i,for循环会为您做这件事。

例如。

代码语言:javascript
复制
M <- matrix(rnorm(5), ncol = 1)
for (i in 1:5){

  out <- rnorm(5)
  M <- cbind(M, out)
}

> M
                        out         out        out        out        out
[1,]  0.21701968  2.0296134 -0.26425755  0.3904337  0.1438060 -0.5340556
[2,]  0.07689991 -2.0589758  0.01443763 -0.7506177 -0.8498391  1.0487328
[3,] -0.73329583  0.2709055  0.42298869  0.3271687  1.0450811 -0.9313009
[4,] -1.68460070  0.2864797 -1.83408494 -0.2878682 -0.4297308  0.5282630
[5,]  0.08921503 -1.4390101  0.89112111 -1.6711018 -2.0863797 -0.6924083

像i= i+1这样的东西通常用在while循环中。否则,您的代码看起来会做您想做的事情。

你的矩阵有多大?它可能很难打印到控制台。如果您尝试使用head(M)会发生什么

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47095154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档