标签: adjacency-matrix

R-匹配不同长度的矩阵的行和列

我目前的问题是以下。我有一个有向的1模式边沿列表,代表在特定年份中参与联合项目的成对演员,可能看起来像:

projektleader   projectpartner  year
A               B               2005
A               C               2000
B               A               2002
...             ...             ...
Run Code Online (Sandbox Code Playgroud)

现在我只需要一个特定年份的子集。并非所有参与者都在这一年活跃,因此子集的规模有所不同。对于下面的网络分析,我需要一个加权有向的邻接矩阵,因此我使用[network package]的选项来创建它。我首先将其加载为网络对象,然后将其转换为邻接矩阵。

grants_00 <- subset(grants, (year_grant=2000), select = c(projectpartner, projectleader))
nw_00 <- network(grants_08to11[,1:2], matrix="edgelist", directed=TRUE) 
grants_00.adj <- as.matrix(nw_00, matrix.type = "adjacency")
Run Code Online (Sandbox Code Playgroud)

结果矩阵看起来像

     A    B    C    E    ...
A    0    1    1    0
B    1    0    0    0
...
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好。我的问题现在是:为了进行进一步的分析,我打算每年以相同的维度和顺序使用邻接矩阵。这意味着来自初始数据集的所有参与者必须是对应年份矩阵的行名和列名,但是矩阵只应包含该特定年份的观察对。我希望我的问题很清楚。我感谢任何建设性的解决方案。

我的想法是ATM:创建初始数据集和简化数据集的矩阵。然后,将所有矩阵值都设置为零。然后我以某种方式将其与简化后的矩阵匹配,并在正确的行和列中使用正确的值填充它。不幸的是,我不知道这怎么可能。

有谁知道如何解决这个问题?

r matrix social-networking adjacency-matrix sna

2
推荐指数
1
解决办法
2026
查看次数

在MATLAB中生成随机加权邻接矩阵

我想在MATLAB中创建一个随机邻接矩阵,使得权重的总和等于边数.最后找到拉普拉斯矩阵

L = diag(sum(A)) - A
Run Code Online (Sandbox Code Playgroud)

然后绘制图形.有没有办法这样做?提前致谢.

random matlab sparse-matrix adjacency-matrix

2
推荐指数
1
解决办法
4464
查看次数

我想用邻接矩阵中的值1替换另一个较小矩阵中给出的权重

如何用邻接矩阵中的权重替换邻接矩阵中的1的值?例如:

adjacent_matrix = [1 0 0 1; 0 0 1 1; 1 0 1 0; 0 1 1 0 ]
weight_matrix = [ 2 4 6 2; 4 5 1 3]
Run Code Online (Sandbox Code Playgroud)

最终矩阵应如下所示: [2 0 0 4; 0 0 6 2; 4 0 5 0; 0 1 3 0]

algorithm matlab adjacency-matrix

2
推荐指数
1
解决办法
79
查看次数

获取从节点到自身的最短路径的算法——邻接矩阵——Java

有向图

有向图

public int dijkstra(){
    boolean[] visited = new boolean[gSize];

    int src = 1;
    int dest = 1;
    int[] distance = new int[5];
    int[] part = new int[5];
    int min;
    int nextNode = 0;

    for(int i = 0; i < 5; i++)
    {
        visited[i] = false;
        part[i] = 0;

        for(int j = 0; j < 5; j++)
            if(arr[i][j] == -1)
                arr[i][j] = 999; //gives it a high value to ignore
    }

    distance = arr[src];
    distance[src] = 0;

    visited[src] = true;

    for(int i …
Run Code Online (Sandbox Code Playgroud)

java algorithm directed-graph dijkstra adjacency-matrix

2
推荐指数
1
解决办法
3200
查看次数

置换矩阵的行和列

假设我有以下矩阵/数组:

array([[0, 0, 1, 1, 1],
       [0, 0, 1, 0, 1],
       [1, 1, 0, 1, 1],
       [1, 0, 1, 0, 0],
       [1, 1, 1, 0, 0]])
Run Code Online (Sandbox Code Playgroud)

我想应用以下排列:

1 -> 5
2 -> 4
Run Code Online (Sandbox Code Playgroud)

结果应该是:

array([[1, 1, 1, 0, 0],
       [1, 0, 1, 0, 0],
       [1, 1, 0, 1, 1],
       [0, 0, 1, 0, 1],
       [0, 0, 1, 1, 1]])
Run Code Online (Sandbox Code Playgroud)

现在,一种非常幼稚(且内存成本高)的方法可能是:

a2 = deepcopy(a1)
a2[0,:] = a1[4,:]
a2[4,:] = a1[0,:]
a = deepcopy(a2)
a2[:,0] = a[:,4]
a2[:,4] = a[:,0]

a3 = …
Run Code Online (Sandbox Code Playgroud)

numpy permutation matrix adjacency-matrix python-2.7

2
推荐指数
1
解决办法
1万
查看次数

如何将图形转换为其等效的线图/边图/R中的交换图?

看图我有一个图 G 及其邻接矩阵。我想将其转换为线图 L(G),使得图 G 的节点成为 L(G) 中的边,反之亦然。
R 中是否有任何包可以执行从节点到边和边到节点的这种交换?

r graph edges nodes adjacency-matrix

2
推荐指数
1
解决办法
1180
查看次数

如何从python中的字典生成图的邻接矩阵?

我有以下字典:

g = {
'A': ['A', 'B', 'C'], 
'B': ['A', 'C', 'E'], 
'C': ['A', 'B', 'D'],
'D': ['C','E'],
'E': ['B','D']
}
Run Code Online (Sandbox Code Playgroud)

它实现了一个图,每个列表包含图顶点的邻居(字典键是顶点本身)。我很麻烦,我想不出一种从邻居列表中获取图邻接矩阵的方法,这可能很简单,但是我对python还是陌生的,希望有人能帮助我!我正在使用Python 3.5

我需要生成以下矩阵:

在此处输入图片说明

python dictionary matrix adjacency-matrix python-3.x

2
推荐指数
2
解决办法
7639
查看次数

在Python中为大型数据集创建邻接矩阵

我在Python中的Adjacency Matrix中表示网站用户行为时遇到问题.我想分析43个不同网站之间的用户交互,以查看哪些网站一起使用.

给定的数据集具有大约13.000.000行,具有以下结构:

 user website
 id1  web1
 id1  web2
 id1  web2
 id2  web1
 id2  web2
 id3  web3
 id3  web2
Run Code Online (Sandbox Code Playgroud)

我想想象一下Adjacency Matrix中网站之间的互动,如下所示:

     web1 web2 web3
 web1  2    2    0
 web2  2    4    1
 web3  0    1    1
Run Code Online (Sandbox Code Playgroud)

我很高兴任何建议

python numpy matrix bigdata adjacency-matrix

2
推荐指数
1
解决办法
843
查看次数

将数据框转换为邻接矩阵/边列表以进行网络分析

我正在尝试将数据框从在线论坛转换为社交网络,但是我不知道如何将数据转换为网络分析所需的邻接矩阵/边列表。

我的代码如下:

library(igraph)  
graph.data.2002 <- as.matrix(data.2002[,2:3])  
g.2002 <- graph.data.frame(graph.data.2002, directed=FALSE)  
plot(g.2002, vertex.size = 1, vertex.label=NA)  
Run Code Online (Sandbox Code Playgroud)

我正在使用 R 进行分析。目前的问题是作者之间是通过ThreadID联系起来的,但是在进行网络分析时,它包含了ThreadID作为一个节点。理想情况下,我想要一个邻接矩阵/边缘列表,如果作者与同一线程上的所有作者交互,则显示 1。

(第一次发帖,如果有什么遗漏/不正确的地方,请告诉我)

目前数据如下:

ThreadID    AuthorID
659289  193537
432269  136196
572531  170305
230003  32359
459059  47875
635953  181593
235116  51993
Run Code Online (Sandbox Code Playgroud)

networking r matrix adjacency-matrix network-analysis

2
推荐指数
1
解决办法
4910
查看次数

网络图未显示沿 Python 边缘的箭头

我有一个邻接矩阵A 和一个定义每个节点坐标的数组:

import numpy as np
import matplotlib.pyplot as plt
import networkx as nx
%matplotlib inline  

Import adjacency matrix A[i,j]
A = np.matrix([[0, 1, 1, 0, 0, 1, 0],
               [0, 0, 1, 1, 0, 0, 0],
               [0, 0, 0, 1, 1, 1, 0],
               [0, 0, 0, 0, 1, 1, 0],
               [0, 0, 0, 0, 0, 0, 1], 
               [0, 0, 0, 0, 0, 0, 1],
               [0, 0, 0, 0, 0, 0, 0]])

## Import node coordinates
xy = np.array([[0, …
Run Code Online (Sandbox Code Playgroud)

python graph networkx adjacency-matrix

2
推荐指数
1
解决办法
2957
查看次数