How to fitt a power function to data

2 次查看(过去 30 天)
I have two 26*1 matrixes of x and y. How can I fitt a power function like (y=bx^n) to the generated graph? I just have basic fitting tool in which there is no power function. So I think I should use an appropriate code. Appreciate it.
Cheers,

回答(2 个)

David Hill
David Hill 2021-4-20
If you have the curve fitting toolbox.
f=fit(x,y,'power1');

Star Strider
Star Strider 2021-4-20
This uses only basic MATLAB functions. No Toolboxes are required.
x = 1:100; % Create Vector
y = rand(size(x)); % Create Vector
objfcn = @(b,x) b(1).*x.^b(2); % Objective Function
parms = fminsearch(@(b) norm(y - objfcn(b,x)), rand(2,1))
xv = linspace(min(x), max(x));
figure
plot(x, y, 'p')
hold on
plot(xv, objfcn(parms,xv), '-r')
hold off
title(sprintf('$y(x) = %.3f \\cdot x^{%.3f}$', parms), 'Interpreter','latex')
.

类别

Help CenterFile Exchange 中查找有关 Get Started with Curve Fitting Toolbox 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by