GML文件的读取

参考:http://stackoverflow.com/questions/15918791/convert-gml-file-to-adjacency-matrix-in-matlab
内容如下的GML文件

node
  [
    id 4938
  ]
  node
  [
    id 4939
  ]
  node
  [
    id 4940
  ]
  edge
  [
    source 8
    target 6
  ]
  edge
  [
    source 8
    target 7
  ]
  edge
  [
    source 9
    target 8
  ]
  edge
  [
    source 10
    target 9
  ]
  edge
  [
    source 13
    target 5

  就是一幅图,要把它处理成邻接矩阵,便于后面处理, 直接用正则表达式就可以了。
  代码如下:
  

function G = importgml(fileName) 
inputfile = fopen(fileName); 
A=[];
l=0; 
k=1;
ii = 1;
while 1
    % Get a line from the input file
    tline = fgetl(inputfile);
    % Quit if end of file
    if ~ischar(tline)
        break;
    end
    nums = regexp(tline,'\d+','match'); %get number from string
    if ii == 3
        nums
    end
    ii = ii+1;
    if length(nums)
        if l==1
            l=0;
            A(k,2)=str2num(nums{1});
            k=k+1;
            continue;
        end
        A(k,1)=str2num(nums{1});
        l=1;
    else
        l=0;
        continue;
    end
end
G=[]; 
length(A) 
for i=1:length(A) 
    G(A(i,1)+1,A(i,2)+1) = 1; 
end
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值