Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将矩阵列表转换为R中的向量_R_Loops_Matrix_Vector_Igraph - Fatal编程技术网

将矩阵列表转换为R中的向量

将矩阵列表转换为R中的向量,r,loops,matrix,vector,igraph,R,Loops,Matrix,Vector,Igraph,我编写了一个代码,使用and查找图中所有相邻顶点的相邻点之间的距离 我有一个循环来读取图中的所有边,然后找到相邻顶点的每对邻居之间的距离。 函数distance()的输出是一个矩阵,例如,如果我有5条边,那么我将得到5个矩阵,每个矩阵将根据所选边中每个顶点的邻域数包含许多距离,而我只想得到一个包含邻域之间所有距离的矩阵(在我的示例中是33个距离)将其转换为向量,或从一开始使用循环将函数距离的输出转换为向量 library(igraph) data<-matrix(c(1,3,1,4,2,3

我编写了一个代码,使用and查找图中所有相邻顶点的相邻点之间的距离

我有一个循环来读取图中的所有边,然后找到相邻顶点的每对邻居之间的距离。 函数
distance()
的输出是一个矩阵,例如,如果我有5条边,那么我将得到5个矩阵,每个矩阵将根据所选边中每个顶点的邻域数包含许多距离,而我只想得到一个包含邻域之间所有距离的矩阵(在我的示例中是33个距离)将其转换为向量,或从一开始使用循环将函数
距离
的输出转换为向量

library(igraph)
data<-matrix(c(1,3,1,4,2,3,2,4,3,4),ncol=2,byrow=TRUE)
dataf<-as.data.frame(data)
df <- graph.data.frame(d = data, directed = FALSE)

   for (edge in 1:length(E(df))){
      v1<-ends(graph = df, es = edge)[1]
      v2<-ends(graph = df, es = edge)[2]

      n1<-neighbors(df,v1,mode=c("all"))
      n2<-neighbors(df,v2,mode=c("all"))

      ds<-distances(df, v = n1, to = n2, mode = c("all"))

         for (i in 1:length(n1)){
             for (j in 1:length(n2)){
               #print(ds[i,j])

                                     }
                                 }  
                                 }
库(igraph)
数据这个怎么样

dsList<-list()
for (edge in 1:length(E(df))){
  v1<-ends(graph = df, es = edge)[1]
  v2<-ends(graph = df, es = edge)[2]

  n1<-neighbors(df,v1,mode=c("all"))
  n2<-neighbors(df,v2,mode=c("all"))

  ds<-distances(df, v = n1, to = n2, mode = c("all"))
  dsList[[edge]]<-ds

  for (i in 1:length(n1)){
    for (j in 1:length(n2)){
      #print(ds[i,j])

    }
  }  
}

那么
最短路径(df)
?或者
距离(df,1:4,1:4,mode=“all”)
@nicola该代码是另一个代码的一部分,其中[最短路径(df)]和[距离(df,V(df),V(df),mode=“all”)]这对我没有帮助,尤其是当我想测量某个边缘垂直点的相邻点之间的距离时,还有没有其他方法可以将所有小矩阵收集到一个大矩阵中?矩阵不能将矩阵作为元素。检查这里。dsList包含单个矩阵,通常在R中,我们使用列表来存储更复杂的数据结构ctures(矩阵、数据帧、其他列表等)
> unlist(dsList)
 [1] 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 2 1 2 0 1 1 1 1