【问题标题】:Find the position of a cell in a matrix from the content从内容中找到一个单元格在矩阵中的位置
【发布时间】:2019-09-02 10:31:39
【问题描述】:

非常基本的问题,但我找不到答案。

对于一个通用矩阵(在我的例子中,我有一个类似下面的邻接矩阵,但要大得多):

   A B C D E 
A  0 1 0 2 1 
B  0 0 1 0 0 
C  0 1 0 1 0 
D  0 1 1 0 0 
E  0 0 0 1 0 

我计算了邻接矩阵中值的频率

table <- data.frame(table(as.matrix(n)))

我现在想知道如何理解这些值的来源。

基本上,我知道一个单元格的值,我如何找到它在矩阵中的位置?

我不知道输出会是什么样子,我只需要行数和列数,或者它们的名称。

【问题讨论】:

    标签: r matrix cell


    【解决方案1】:

    任意邻接矩阵n:

    n <- as.matrix(rbind(c(1,0.2,0.8,0.6),
                    c(0.3,1,0.8,0.2),
                    c(0.8,0.1,1,0.3),
                    c(0.8,0.2,0.3,1)))
    

    查找 0.8 的位置。

    value = 0.8
    which(n == value, arr.ind=T)
    

    输出:

         row col
    [1,]   3   1
    [2,]   4   1
    [3,]   1   3
    [4,]   2   3
    

    【讨论】:

    • which 肯定是 OP 正在寻找的。尽管如此,作为一个例子,我会避免使用具有浮动值的矩阵。我们需要记住,必须避免浮点值之间的精确比较(例如参见stackoverflow.com/questions/9508518/…)。最好使用整数。
    猜你喜欢
    • 2019-05-26
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    相关资源
    最近更新 更多