育种数据分析之放飞自我分享 http://blog.sciencenet.cn/u/yijiaobai 关注:生物统计,数量遗传,混合线性模型,生物信息,R,Perl,Python,GWAS,GS相关方法,文章及代码

博文

矩阵计算中直和和直积的概念

已有 720 次阅读 2019-7-12 09:16 |个人分类:农学统计|系统分类:科研笔记

概念解释

解释:直和(Direct sum)和直积(Direct product)是混合线性模型中经常用到的概念,下面用具体例子介绍直积和直和是如何通过R语言计算的。

比如下图中,D为2 * 2的矩阵,F为2 * 2 的矩阵,那么直和就是讲D和F作为对角线,非对角线为0,构成一个4 * 4的矩阵。直积D的每个元素分别和F矩阵相乘,得到4 * 4 的矩阵。

图片.png

函数构建

这里直积我们用R的默认函数kronecker,为了方便操作,我们赋予它另一个名称:direct_product。
对于直和,我们构建了一个函数,可以将两个矩阵变成直和的结果。

direct_sum<- function(mat1,mat2){
  r1 <- dim(mat1)[1];c1<- dim(mat1)[2]
  r2 <- dim(mat2)[1];c2<- dim(mat2)[2]
  rbind(cbind(mat1,matrix(0,r1,c2)),cbind(matrix(0,r2,c1),mat2))
}
direct_product <- kronecker

示例演示

图片.png




http://blog.sciencenet.cn/blog-2577109-1189163.html

上一篇:玉米地里的湿身诱惑
下一篇:R 语言中的汇总统计:如何批量计算不同因素不同水平的平均值

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2019-10-22 10:04

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部