小编Gna*_*uha的帖子

在OS X 10.9下使用Xcode 5.1使用MATLAB 2012a的Mex文件

我正在尝试为OpenCV(3.0.0)编译开发人员构建,但是我无法将我的系统配置为mex C文件.我试图遵循stackoverflow的建议,目前我可以使用mex c ++文件,但不能使用C++文件.我所做的是编辑,mexopts.sh以便使用正确SDKROOT,我也将部署目标更改为10.9.

我的mexopts.sh看起来如下:

    #PATCH: MacOSX10.8 // updated manually to 10.9
        CC='llvm-gcc'
        CXX='llvm-g++'
        SDKROOT='/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/'   

        #SDKROOT='/'
        MACOSX_DEPLOYMENT_TARGET='10.9'
        ARCHS='x86_64'

        # StorageVersion: 1.0
        # CkeyName: GNU C
        # CkeyManufacturer: GNU
        # CkeyLanguage: C
        # CkeyVersion:
        CFLAGS="-fno-common -no-cpp-precomp -arch $ARCHS -isysroot $SDKROOT -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET"
        CFLAGS="$CFLAGS  -fexceptions"
        CLIBS="$MLIBS"
        COPTIMFLAGS='-O2 -DNDEBUG'
        CDEBUGFLAGS='-g'

        CLIBS="$CLIBS -lstdc++"
        # C++keyName: GNU C++
        # C++keyManufacturer: GNU
        # C++keyLanguage: C++
        # C++keyVersion: 

        # OLD
        #CXXFLAGS="-fno-common -no-cpp-precomp -fexceptions -arch $ARCHS -isysroot $SDKROOT -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET"
        # NEW
        CXXFLAGS="-fno-common -no-cpp-precomp …
Run Code Online (Sandbox Code Playgroud)

c c++ matlab opencv c++11

3
推荐指数
1
解决办法
5207
查看次数

在python中使用igraph创建无向加权图

我在文本文件中有一个数据,我想创建一个无向加权图,因为我从文件中读取它.数据包含推文.对于推文中的每个单词,我在图中创建一个节点.对于每个其他单词,我在它们之间创建一个边,并将它们的重量加1.所以边缘的权重应该是所有推文中两个单词的出现次数.

我创建了一个图表:

graph=igraph.Graph();
Run Code Online (Sandbox Code Playgroud)

我使用其ID在两个节点之间获得优势:

edge=graph.es.select(_source=id1,_target=id2);
Run Code Online (Sandbox Code Playgroud)

但是,即使图形是无向的,也不会找到从id2到id1的边缘.所以我使用了以下hack:

edge1=graph.es.select(_source=id1,_target=id2);
edge2=graph.es.select(_source=id2,_target=id1);

if (len(edge1)>len(edge2)):
   edge=edge1;
else:
   edge=edge2;
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是:有更好的方法吗?

但是我的主要问题是更新重量.在我使用上面的代码找到边缘后,我尝试使用以下方法更新它的重量:

if (len(edge)==0):
   graph.add_edge(id1,id2);
   edge=graph.es.select(_source=id1,_target=id2);
   edge["weight"]=1;
#else add weight
else:
    print edge.attributes();
    print edge["weight"];
    edge["weight"][0]=edge["weight"][0]+1;
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

 ...
 ['weight']
 [None]
 Traceback (most recent call last):
   File "/home/ivan/workspace/Twitter/process/MovieGraph.py", line 145, in <module>
     processTweet(g,words);
   File "/home/ivan/workspace/Twitter/process/MovieGraph.py", line 87, in processTweet
     edge["weight"][0]=edge["weight"][0]+1;
 TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
Run Code Online (Sandbox Code Playgroud)

我试图调试,但看起来边缘存在,但重量没有定义.这怎么可能?谢谢.

python twitter graph igraph

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

标签 统计

c ×1

c++ ×1

c++11 ×1

graph ×1

igraph ×1

matlab ×1

opencv ×1

python ×1

twitter ×1