从大量文件中收集统计信息

时间:2015-07-12 13:55:26

标签: octave vectorization

有更快的方法吗

function [A,B]=powerplot(basepath,N)
    A=zeros(N,1);
    B=zeros(N,1);
    for k=0:N-1
        filename=sprintf('%s-%d.txt',basepath,k);
        data=load(filename);
        [a,b]=powerfit(data(:,1),data(:,2));
        A(k+1)=a;
        B(k+1)=b;
    end
end

,其中

function [a,b]=powerfit(X,Y)
    p=polyfit(log(X),log(Y),1);
    a=exp(p(2));
    b=p(1);
end

文件包含对整体的测量,每个文件在不同时间捕获,包含不同的行数。我可以更好地整理数据吗?为了加快速度,是否有必要使用像ROOT这样的库在本机代码中进行此分析?

1 个答案:

答案 0 :(得分:3)

问题是load。通过load替换dlmread,代码变得更快。

function [A,B]=powerplot(basepath,N)
    A=zeros(N,1);
    B=zeros(N,1);
    for k=0:N-1
        filename=sprintf('%s-%d.txt',basepath,k);
        data=dlmread(filename);
        [a,b]=powerfit(data(:,1),data(:,2));
        A(k+1)=a;
        B(k+1)=b;
    end
end