If you plot the given vectors by the statement semilogy(A(:,1),A(:,2),':o'),you observe that the pure power function does not fit well the measured data, because the plotted points are not on a straight line (in semilogy axes). It would need more complicated function. Mira
To fit power law
7 次查看(过去 30 天)
显示 更早的评论
I want to fit power law on my data (Data attached here - Data.txt file). I have the following code:
A=load('Data.txt')
ft=fittype(@(m,b,x)b*x.^m);
f = fit(A(:,1),A(:,2),ft)
figure
plot(f,':g',A(:,1),A(:,2),':b')
But this is not fitting my data with the power law. Could you please check what is the problem? I guess, my data is not starting from zero. I think, I have to normalize it(I am not sure). When I use fitoptions to normalize, it is not working!
I tried to fit by taking log on both sides because y=A*x^m log(y)=log(A)+m*log(x)
ft=fittype(@(a,m,x)log(a)+m*log(x));
[f gof] = fit(A(:,1),log(A(:,2)),ft)
still it is giving the wrong fit!!! just a horizontal straight line! Please help me.
0 个评论
回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear and Nonlinear Regression 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!