有更快的方法吗
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这样的库在本机代码中进行此分析?
答案 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