19041562 2019-04-09 16:17 采纳率: 100%
浏览 6315
已采纳

R语言:如何提取矩阵的左上三角与右下三角?

R语言:如何提取矩阵的左上三角与右下三角?
尝试的代码如下:

> n[upper.tri(n)]<-t(n)[upper.tri(n)]
> n1<-n[,5:1]
> n1
     [,1] [,2] [,3] [,4] [,5]
[1,]    5    4    3    2    1
[2,]   10    9    8    7    2
[3,]   15   14   13    8    3
[4,]   20   19   14    9    4
[5,]   25   20   15   10    5
> n1[upper.tri(n1)]<-t(n1)[upper.tri(n1)]
> n1[,5:1]
     [,1] [,2] [,3] [,4] [,5]
[1,]   25   20   15   10    5
[2,]   20   19   14    9   10
[3,]   15   14   13   14   15
[4,]   10    9   14   19   20
[5,]    5   10   15   20   25

求解答!!!

  • 写回答

2条回答 默认 最新

  • 酷在前行 R语言数据科学领域新星创作者 2022-10-19 08:29
    关注

    如下代码,若解决望采纳,谢谢
    mat.1 <- matrix(1:16, # 1—16个向量
    ncol = 4, # 4列
    nrow = 4, # 4行
    byrow=TRUE, # byrow=T 表示向量按行的顺序进行,默认的话,会按列的顺序进行排列
    dimnames = list(c(paste("x", 1:4, sep = ".")), # 对维度(行列)进行命名, 可以这么看list(x,y) 表示行列
    c(paste("y", 1:4, sep = ".")))) # x由x.1....x.4组成,y由y.1....y.4组成
    mat.1

    矩阵的行列名还可以使用rownames或者colnames进行修改

    rownames(mat.1) <- paste("row", 1:4, sep=".")
    colnames(mat.1) <- paste("col", 1:4, sep=".")
    mat.1

    生成上三角矩阵,注意这里的diag参数如果为TRUE,

    表示把矩阵对角也包括进来。设置为FALSE就是不包括。

    mat.1[!upper.tri(mat.1, diag = TRUE)] <- 0
    mat.1

    生成下三角矩阵

    mat.1[!lower.tri(mat.1, diag = TRUE)] <- 0
    mat.1

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 10月20日

悬赏问题

  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 Ubuntu开机显示器只显示kernel,是没操作系统(相关搜索:显卡驱动)
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 arbotix没有/cmd_vel话题
  • ¥20 找能定制Python脚本的
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?
  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀