gpt4 book ai didi

r - 如何有效地遍历三角矩阵

转载 作者:行者123 更新时间:2023-12-02 00:19:38 26 4
gpt4 key购买 nike

我有一个三角矩阵,想有效地遍历所有元素。有没有一种我根本看不到的聪明方法?

所以这是我的矩阵的一个小例子

        [,1] [,2] [,3] [,4]
[1,] 1 0 0 0
[2,] 2 1 0 0
[3,] 3 7 1 0
[4,] 4 4 10 1

我想做的是执行一些功能 f()在此矩阵中位于主对角线下方(上方)的元素上。 (背景:我知道我有一个对称矩阵,想执行一些耗时的数据操作,我想“镜像”我的矩阵)

最佳答案

如下图,lower.tri()upper.tri()提供一种有表现力的(且快速的)方法来提取和替换矩阵中相关部门中的元素。由于与索引操作相比,您应用于元素的函数可能较慢,因此搜索更快的索引选项(或试图避免对 t() 的单次调用)可能没有意义。

## Example data
m <- matrix(c(1,2,3,4,0,1,7,4,0,0,1,10,0,0,0,1), ncol=4)

## Example of a slow function
slowFun <- function(x) sapply(x, function(x) {Sys.sleep(0.1); x^2})

## Proposed strategy
m[lower.tri(m)] <- slowFun(m[lower.tri(m)])
m[upper.tri(m)] <- t(m)[upper.tri(m)]

关于r - 如何有效地遍历三角矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11508998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com