You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中将Matrix值赋值给array时报下标越界错误如何解决

错误原因分析
  • 你定义的irf1数组维度为c(n, irfh, itrn),第三维的长度固定为itrn=100,仅支持下标取值范围为1~100
  • 循环变量i的遍历范围是1:(itrn+burnin)即1115,当`i>burnin`触发赋值逻辑时,`i`的取值为16115,直接用i作为第三维下标时,一旦i>100就会超出数组边界,触发越界报错
修复方案

调整赋值时的第三维下标,将i减去burnin映射到1~100的合法范围即可,修改后代码如下:

n = 3
irfh = 12 
itrn = 100 
burnin = 15
irf1 = array(0, dim=c(n,irfh,itrn))
lj = matrix(1:36,3,12)
for(i in 1:(itrn+burnin)){
  if(i > burnin){
   # 调整下标,把i的16~115映射到1~100
   irf1[,,i - burnin] = lj
  }
}

内容的提问来源于stack exchange,提问作者Shrey_var

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:15:03