楼主: bonnie@123
4818 4

[问答] 请教一个R语言for循环报错问题,subscript out of bounds [推广有奖]

  • 2关注
  • 1粉丝

大专生

90%

还不是VIP/贵宾

-

威望
0
论坛币
2095 个
通用积分
6.5894
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
200 点
帖子
23
精华
0
在线时间
108 小时
注册时间
2021-3-24
最后登录
2024-5-10

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

刚刚开始学习R 不久,在对大矩阵A分块运行的时候遇到这么一个问题,代码运行老是报错,不知道错误出在哪里,以下是程序:
i<-1 #第一行处理
m<-matrix(0,nrow=30,ncol=30)
I<-diag(30)
for (j in 1:31) {
  if (j==i) Int1_<-matrix(0,nrow=30,ncol=1)
  else {
    Aij<-A[(1+30*(i-1)):(30*i),(1+30*(j-1)):(30*j)]
    Ajjn<-solve(I-A[(1+30*(j-1)):(30*j),(1+30*(j-1)):(30*j)])
    Int1_<-Aij%*%Ajjn%*%Y_pro[(1+30*(j-1)):(30*j)]
  }
  Int1_<-as.matrix(Int1_)
  m[,j]<-Int1_
}


运行后报错:
Error in `[<-`(`*tmp*`, , j, value = Int1_) : subscript out of bounds

运行之后有结果,同时也报错了,不知道啥原因,
请问哪位前辈知道哪里出错了嘛?非常感谢
二维码

扫码加我 拉你入群

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

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

关键词:script Bounds Bound scrip for循环 R语言

沙发
owenqi 在职认证  学生认证  发表于 2022-6-14 05:13:17 |只看作者 |坛友微信交流群
你看看是不是你循环那里,j的取值是1:31,那这样的话,m[,31]这个东西是不存在的,所以就超出界限了。
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

藤椅
jiangbeilu 学生认证  发表于 2022-6-17 11:19:27 |只看作者 |坛友微信交流群
owenqi 发表于 2022-6-14 05:13
你看看是不是你循环那里,j的取值是1:31,那这样的话,m[,31]这个东西是不存在的,所以就超出界限了。
确实是这样,很常见的超出界限错误

使用道具

板凳
bonnie@123 学生认证  发表于 2022-7-18 20:09:13 |只看作者 |坛友微信交流群
jiangbeilu 发表于 2022-6-17 11:19
确实是这样,很常见的超出界限错误
那这种问题要怎么改呢?

使用道具

报纸
bonnie@123 学生认证  发表于 2022-7-18 20:09:39 |只看作者 |坛友微信交流群
owenqi 发表于 2022-6-14 05:13
你看看是不是你循环那里,j的取值是1:31,那这样的话,m[,31]这个东西是不存在的,所以就超出界限了。
那这种问题要怎么改呢?

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-11 02:43