楼主: dqj1551007438
5246 5

[问答] R语言中怎么定义矩阵序列,并将n个矩阵相加 [推广有奖]

  • 0关注
  • 2粉丝

已卖:89份资源

本科生

9%

还不是VIP/贵宾

-

威望
0
论坛币
80 个
通用积分
1.0800
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
538 点
帖子
28
精华
0
在线时间
92 小时
注册时间
2014-4-23
最后登录
2021-8-12

楼主
dqj1551007438 学生认证  发表于 2016-7-27 11:53:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题~
二维码

扫码加我 拉你入群

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

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

关键词:R语言

沙发
bbslover 在职认证  发表于 2016-7-27 21:08:59
举个例子

藤椅
dqj1551007438 学生认证  发表于 2016-7-27 21:48:23
bbslover 发表于 2016-7-27 21:08
举个例子
比如一年360天,每一天有43行数据,我们需要把每43行的数据看做一个矩阵,这样就有了360个43*43的矩阵。然后再以30天为一个月,每30个矩阵相加,就得到12个月的矩阵。。这中间怎么定义矩阵序列和n个序列求和,都遇到问题了
D=array(0,dim=c(43,43,360))
for(j in 1:365){                   #将每一天弄成一个矩阵,每一天是43行
    p[j]=43*j-42  
    q[j]=43*j
    D[j]=rbind(x[c(p[j]:q[j]),])  #第j天的矩阵

下面是求和
for(k in 1:12)    {                  #一共有12个月
   g[k]=sum(a[c(1:k)])-a[k]+1
   #计算出每个月的第一天和最后一天的时间
   d[k]=sum(a[c(1:k)])
   M[,,k]=apply(D[,,seq(g[k],d[k],by=1)],c(1,2),sum)       #将每个月中所有天数的矩阵相加


这里的D定义是不是对的?是应该写成D[,,j]还是D[,j]还是怎么办?运行的时候老出错

另外,求和的部分有问题吗?

感觉最主要的是怎么定矩阵序列

板凳
dqj1551007438 学生认证  发表于 2016-7-27 21:53:11
急求答案或者程序啊!谢谢各位大神了!

报纸
bbslover 在职认证  发表于 2016-7-28 00:33:20
使用list看看

地板
bbslover 在职认证  发表于 2016-7-28 01:01:22
dqj1551007438 发表于 2016-7-27 21:53
急求答案或者程序啊!谢谢各位大神了!
  1. L <- list()

  2. for (i in 1:360) {
  3.   L[[i]] <- matrix(0, 43, 43)
  4. }

  5. length(L)

  6. monthSum <- list()

  7. for (i in 1:12) {
  8.   cur <- i * 30
  9.   bef <- (i - 1) * 30 + 1
  10.   if (i == 1) {
  11.     theVec <- 1:cur
  12.   } else {
  13.     theVec <- bef:cur
  14.   }
  15.   monthSum[[i]] <- Reduce("+", L[theVec])
  16. }

  17. length(monthSum)
复制代码
看看能不能从这个简单的code中得到启发!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-28 13:17