矩阵对角线相关计算2 - lower.tri, upper.tri

简介:
diag()可以取出矩阵对角线数据, 修改对角线数据, 生成指定对角线数值的矩阵等.
而利用 lower.tri  可以取出矩阵对角线下方的数值, 
利用upper.tri 可以取出矩阵对角线上方的数值.
实际上这两个函数是将对角线两边的位置置为TRUE或FALSE.

例如 : 
> x
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12

对角线上方为TRUE, 其他(含对角线)为FALSE
> upper.tri(x)
      [,1]  [,2]  [,3] [,4]
[1,] FALSE  TRUE  TRUE TRUE
[2,] FALSE FALSE  TRUE TRUE
[3,] FALSE FALSE FALSE TRUE

使用 x[upper.tri(x)]则可以取出这些TRUE的值.
> x[upper.tri(x)]
[1]  4  7  8 10 11 12

对角线下方为TRUE, 其他(含对角线)为FALSE
> lower.tri(x)
      [,1]  [,2]  [,3]  [,4]
[1,] FALSE FALSE FALSE FALSE
[2,]  TRUE FALSE FALSE FALSE
[3,]  TRUE  TRUE FALSE FALSE

使用 x[lower.tri(x)]则可以取出这些TRUE的值.
> x[lower.tri(x)]
[1] 2 3 6

同时, 我们可以使用 x[lower.tri(x)]  来设置矩阵的这些值.
> x[lower.tri(x)] = c(1,1,1)
> x
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    1    5    8   11
[3,]    1    1    9   12
> x[lower.tri(x)] = 100
> x
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]  100    5    8   11
[3,]  100  100    9   12


[参考]
> help("lower.tri")

lower.tri                 package:base                 R Documentation

Lower and Upper Triangular Part of a Matrix

Description:

     Returns a matrix of logicals the same size of a given matrix with
     entries ‘TRUE’ in the lower or upper triangle.

Usage:

     lower.tri(x, diag = FALSE)
     upper.tri(x, diag = FALSE)
     
Arguments:

       x: a matrix.

    diag: logical.  Should the diagonal be included?

See Also:

     ‘diag’, ‘matrix’.

Examples:

     (m2 <- matrix(1:20, 4, 5))
     lower.tri(m2)
     m2[lower.tri(m2)] <- NA
     m2

目录
相关文章
|
2月前
|
缓存 监控 Java
【分布式】分布式核心组件——分布式熔断降级:熔断器状态机、熔断策略、降级方案、Resilience4j/Sentinel实现
本文系统化梳理分布式熔断降级完整知识体系,涵盖核心定位、状态机模型、熔断策略(慢调用/异常比例/数)、降级方案、Resilience4j与Sentinel深度对比、生产落地实践及云原生进阶扩展,助力学习、开发与面试一站式掌握。
|
搜索推荐 定位技术
百度地图开发mapStyle个性化地图styleJson的配色解决方案
百度地图开发mapStyle个性化地图styleJson的配色解决方案
959 0
|
7月前
|
数据采集 人工智能 供应链
2025年适合汽车行业与互联网企业的BI产品选型指南
2025年,数字化转型加速,BI工具成企业决策核心。本文对比瓴羊Quick BI、Power BI、Tableau、永洪科技、Domo五大主流产品,从能力、行业适配、案例等维度解析,重点推荐阿里云旗下瓴羊Quick BI,其在汽车与互联网行业表现突出,兼具AI分析、高性能计算与信创合规优势,助力企业实现数据价值最大化。
|
2月前
|
NoSQL 网络协议 Cloud Native
【Azure Redis】云原生环境下的 Redis 超时之谜:为什么 15 分钟后应用才恢复?
云原生中Redis短暂不可用后应用持续超时15分钟?问题不在Redis,而在Linux TCP默认重传机制(tcp_retries2=15)与长连接模型的错位。需三管齐下:调低内核重传次数、客户端显式配置超时与自动重连、应用层引入断路器与弹性重试。
210 20
|
3月前
|
Windows
Notepad++ 8.8安装教程 Windows版:详细步骤+安装路径修改
Notepad是Windows自带的纯文本编辑器,自1985年沿用至今。本文详解Notepad++ 8.8安装教程:下载压缩包→解压→以管理员身份运行Setup.exe→按向导完成安装(可选改路径、建桌面快捷方式),一分钟快速部署,即刻享受更强大的代码与文本编辑体验。(239字)
|
存储 监控 安全
TG7100CWiFi&BLE双模芯片 一键连接AIoT平台让你快速自定义智能方案
面对市面上眼花缭乱的双模芯片,许多应用方案商往往挑花了眼,不知道该选择哪款。今天我们推荐是天猫精灵联合平头哥推出的TG7100CWiFi&BLE双模芯片。它具有低功耗、宽工作温度等特点,广泛适用于智能家居,电工照明等领域。
TG7100CWiFi&BLE双模芯片 一键连接AIoT平台让你快速自定义智能方案
|
数据可视化 项目管理 开发工具
Git 可视化的实现:提升版本控制体验的利器
Git是最流行的分布式版本控制系统,广泛用于软件开发和项目管理。但其命令行操作复杂,难以直观理解,尤其是涉及分支和合并时。为此,Git可视化工具应运而生,通过图形界面帮助开发者更清晰地理解项目历史、分支结构及变更情况。本文将探讨Git可视化的概念背景、技术方法及相关工具,包括GitKraken、Sourcetree、Gitg、Git Extensions和Tig等,帮助读者掌握其在日常工作中的应用,提升版本管理效率。此外,还将介绍如何结合可视化项目管理工具,如板栗看板,实现更高效的团队协作和任务管理。
485 0
|
SQL 算法 JavaScript
倒序排列的基本概念和应用场景
倒序排列的基本概念和应用场景
|
网络协议 程序员 数据库
什么是公网IP和内网IP
【10月更文挑战第27天】公网IP与内网IP是网络通信中的两个重要概念。公网IP是互联网上的唯一标识,而内网IP仅在局域网内部有效,用于局域网内的设备通信。由于IPv4地址资源有限,通常一个公司或家庭只有一个公网IP,内部设备通过NAT(网络地址转换)技术共享该公网IP访问互联网。这样不仅节省了IP资源,还提高了网络安全性和稳定性。
1768 0
|
SQL 分布式计算 数据可视化
基于Hadoop的大数据可视化方法
【8月更文第28天】在大数据时代,有效地处理和分析海量数据对于企业来说至关重要。Hadoop作为一个强大的分布式数据处理框架,能够处理PB级别的数据量。然而,仅仅完成数据处理还不够,还需要将这些数据转化为易于理解的信息,这就是数据可视化的重要性所在。本文将详细介绍如何使用Hadoop处理后的数据进行有效的可视化分析,并会涉及一些流行的可视化工具如Tableau、Qlik等。
611 0