R 中的嵌套 for 循环存在问题



我正在尝试通过重现他们在课堂上提供给我们的定量系统性能分析算法来练习R。输出是系统中一定数量的项目 (n( 和一定数量的计算机 (k( 的队列长度 (Q(、吞吐量 (X( 和服务时间 (R(。 当机器数量= 1并且代码正常工作时,我从简化版本开始。

N1 <-c(1,2,3)
K1 <- 1
Q <- 0 
R <- 0
D <- 3 # service rate of the machine
for(z in 1:length(N1))
{if(z==1){R[z] <-D} else{R[z] <- 3*(1+Q[z-1])}
X<- z/R[z];
Q[z] <- X*R[z]}

然后,我尝试了 4 台机器。D 代表每台机器的维修率。所以我创建了一个嵌套的 for 循环。代码如下。

N1 <-c(1,2)
K <- c(1,2,3,4)
D <- c(3,4,3,6) 
Q <- 0 
R <- 0
X <-0 
for(z in 1:length(N1)) 
{for(k in 1:length(K))
{if(z==1){R[k,z] <-D[k]} else{R[k,z] <- D[k]*(1+Q[k,z-1])}
X[z]<- z/sum(R[z]); 
if(z==1){Q[k,z] <- X[z]*R[k,z]} else {Q[k,z] <- X[z]*R[k,z]}
}}

虽然我修复了 z==1,但我得到一个错误说:"R[k, z] <- D[k] 中的错误:矩阵上的下标数量不正确" 我不确定如何进行,我将不胜感激任何帮助。只是 le 我知道,以防需要更多详细信息。非常感谢。

你必须分配二维矩阵 R

用:

R <- matrix(nrow=length(K), ncol=length(N1))

而不是:

R <- 0

最新更新