全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2746 5
2015-07-21
悬赏 10 个论坛币 已解决
最近遇到了一个问题,在算遗传率和育种值中,直接得到亲缘关系的逆矩阵,格式是这样:A形状:

   Row Column   Ainverse
  1      1  1.8333333
  2      1  0.5000000
  2      2  2.0000000
  3      1 -0.6666667
  3      2  0.5000000
  3      3  1.8333333
  4      1 -1.0000000
  4      2 -1.0000000
  4      4  2.0000000
  5      2 -1.0000000
  5      3 -1.0000000
  5      5  2.0000000

其实逆矩阵规范的写法应该是这样:
B形状:
1.8333333  0.5 -0.6666667   -1    0
0.5000000  2.0  0.5000000   -1   -1
-0.6666667  0.5  1.8333333    0   -1
-1.0000000 -1.0  0.0000000    2    0
  0.0000000 -1.0 -1.0000000    0    2

然后对它求逆矩阵就可以得到亲缘关系的矩阵。
问题:
这里有对称矩阵的坐标图A形状(知道坐标的行和列号),值为0的坐标省略,通过什么方法可以复原成B状?

其实我不是求程序的,只是不知道解决思路,有大神给我指导一下思路即可,十分感谢。

最佳答案

十里春风 查看完整内容

mat=matrix(0,5,5) mat[cbind(Row,Column)]
二维码

扫码加我 拉你入群

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

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

全部回复
2015-7-21 18:49:00
mat=matrix(0,5,5)
mat[cbind(Row,Column)]<-Ainverse
mat[upper.tri(mat)]=t(mat)[upper.tri(t(mat))]

二维码

扫码加我 拉你入群

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

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

2015-7-21 18:49:30
我用的是R语言
二维码

扫码加我 拉你入群

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

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

2015-7-21 21:30:38
复制代码


二维码

扫码加我 拉你入群

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

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

2016-8-25 07:42:08
十里春风 发表于 2015-7-21 18:49
mat=matrix(0,5,5)
mat[cbind(Row,Column)]
请问如果原矩阵名字是A, 复原矩阵时用的code应该是:
mat=matrix(0,5,5)
mat[cbind(A$Row,A$Column)] 吗?

为何我这样尝试之后的结果是一列全为0的数字?
二维码

扫码加我 拉你入群

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

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

2016-8-25 07:57:27
★○瞬间●☆ 发表于 2016-8-25 07:42
请问如果原矩阵名字是A, 复原矩阵时用的code应该是:
mat=matrix(0,5,5)
mat[cbind(A$Row,A$Column)] 吗 ...
不好意思, 有两个$没显示出来
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群