楼主: mlxgzzz
1365 8

[问答] 矩阵运算求助 [推广有奖]

  • 0关注
  • 0粉丝

初中生

38%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
120 点
帖子
13
精华
0
在线时间
10 小时
注册时间
2017-11-21
最后登录
2018-6-24

楼主
mlxgzzz 发表于 2017-11-21 15:55:16 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
adjacency = matrix(1,nrow = 3600,ncol = 3600)
Sdatexpr = as.numeric(Sdatexpr)
sc = as.matrix(as.numeric(Sdatexpr))
for(i in 1:3600){
  for(j in 1:3600){
    sd = as.matrix(as.numeric(round(sc[i,j],2)))
    adjacency[i,j] = 1/(1+ml_fun(0.7,1,-0.3*abs(sd)^0.7,3,0.1))
  }
}

Sdatexpr是一个3600*3600的实对称矩阵。我想把Sdatexpr中m行n列处的元素通过运算之后放到新矩阵(adjacency矩阵)中的m行n列处。ml_fun函数如下:

library(expm)
ml_fun <- function(a,b,x,n,eps0){
  if (nargs() < 5) eps0 <- .Machine$double.eps
  if (nargs() < 4) n <- 0
  am = matrix(1,nrow = 1,ncol = 1)
  f <- 0 ; fa <- am ; j <-0
  while(norm(fa,"1")>=eps0){
    # fa <- gamma(j+n+1)%/%gamma(j+1)%/%gamma(a%*%j+a%*%n+b)%*%x%^%j
    fa <- gamma(j+n+1)/gamma(j+1)/gamma(a*j+a*n+b)*x%^%j
    f <- f+fa ; j<-j+1
  }
}
运行之后提示:
Error in adjacency[i, j] <- 1/(1 + ml_fun(0.7, 1, -0.3 * abs(sd)^0.7,  :
  replacement has length zero
求同志们帮助,是什么原因导致的这个错误呢。

二维码

扫码加我 拉你入群

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

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


沙发
mlxgzzz 发表于 2017-11-23 09:04:01
顶顶,求助。。

藤椅
mlxgzzz 发表于 2017-11-27 09:31:55
顶顶~~

板凳
zhumengjin 发表于 2017-12-5 00:02:48
针对矩阵元素的运算,大多数不需要循环吧,直接对矩阵用做运算函数,得到对应的值矩阵

Untitled.png (7.28 KB)

Untitled.png

报纸
豆饼 发表于 2017-12-6 09:00:57
你得把计算公式和问题贴出来,R使用的是向量运算,感觉代码不需要这么复杂。

地板
mlxgzzz 发表于 2017-12-15 13:58:30
zhumengjin 发表于 2017-12-5 00:02
针对矩阵元素的运算,大多数不需要循环吧,直接对矩阵用做运算函数,得到对应的值矩阵
感谢!

7
mlxgzzz 发表于 2017-12-15 13:58:36
zhumengjin 发表于 2017-12-5 00:02
针对矩阵元素的运算,大多数不需要循环吧,直接对矩阵用做运算函数,得到对应的值矩阵
感谢!

8
mlxgzzz 发表于 2017-12-15 13:58:37
zhumengjin 发表于 2017-12-5 00:02
针对矩阵元素的运算,大多数不需要循环吧,直接对矩阵用做运算函数,得到对应的值矩阵
感谢!

9
mlxgzzz 发表于 2017-12-15 13:58:37
zhumengjin 发表于 2017-12-5 00:02
针对矩阵元素的运算,大多数不需要循环吧,直接对矩阵用做运算函数,得到对应的值矩阵
感谢!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 23:56