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

Collecting statistics from a large set of files

有没有更快的方法

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 这样的库在本机代码中进行此分析?

问题是 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