R语言中上三角矩阵转换为三元组形式及相互转换
1、
dat <- matrix(c(3, 7, 1, 2, 4, 9, 8, 5, 0, 15, 22, 77, 11, 44, 33, 88), nrow = 4) dat lines <- nrow(dat) * (nrow(dat) - 1)/2 + nrow(dat) lines res <- data.frame(a = rep(0, lines), b = rep(0, lines), c = rep(0, lines)) res k <- 0 q <- 0 for (i in 1:nrow(dat)) { q <- q + 1 for (j in q:ncol(dat)) { k <- k + 1 res[k, 1] <- i res[k, 2] <- j res[k, 3] <- dat[i, j] } } res
2、三元组形式(上三角矩阵)转换为矩阵的形式
res res2 <- matrix(0, nrow = length(unique(res$a)), ncol = length(unique(res$b))) res2 res2[as.matrix(res[,1:2])] <- res[,3] res2 <- res2 + t(res2) - diag(diag(res2)) res2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律