19041562 2019-04-09 08:17 采纳率: 100%
浏览 6328
已采纳

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 00: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 在fragment使用okhttp同步上传文件,能不能在fragment销毁后还可以继续上传文件?
  • ¥20 matlab代码实现可达矩阵形成骨骼矩阵
  • ¥15 关于地板的木纹和图库中的匹配的
  • ¥30 机器学习预测疾病模型流程疑问
  • ¥50 2048Python实现
  • ¥15 使用ads进行低噪放仿真没有结果且不报错
  • ¥15 关于#python#的问题:有偿求一个千寻框架找书机器人插件
  • ¥15 安装numpy时出现TypeError应该怎么办?
  • ¥15 ArcGIS Pro时空模式挖掘工具
  • ¥15 获取到海康hls的视频地址是http协议导致无法正常播放
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部