从大量文件中收集统计信息
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
有没有更快的方法
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