-
Notifications
You must be signed in to change notification settings - Fork 0
/
Fit_ERF_function.m
46 lines (39 loc) · 1.32 KB
/
Fit_ERF_function.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
function [fitresult, gof] = Fit_ERF_function(filename)
%CREATEFIT(X_1KOHM,VVOLT_1KOHM)
% Create a fit.
%
% Data for 'untitled fit 1' fit:
% X Input : x_1Kohm
% Y Output: Vvolt_1Kohm
% Output:
% fitresult : a fit object representing the fit.
% gof : structure with goodness-of fit info.
%
% See also FIT, CFIT, SFIT.
% Auto-generated by MATLAB on 12-Apr-2017 12:33:08
Data = load(filename)
X = Data(:,1);
Y = Data(:,2);
%% Fit: 'untitled fit 1'.
[xData, yData] = prepareCurveData( X, Y );
%[xData, yData] = prepareCurveData( x_500Ohm, Vvolt_500Ohm );
% Set up fittype and options.
ft = fittype( 'p0/2*(1 - erf(sqrt(2)*(x-x0)/w))', 'independent', 'x', 'dependent', 'z' );
opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
opts.Display = 'Off';
opts.Algorithm = 'Levenberg-Marquardt';
%opts.Display = 'Off';
%opts.StartPoint = [0.853031117721894 0.622055131485066 0.350952380892271 0.513249539867053];
opts.StartPoint = [10 0.849129305868777 0.933993247757551];
%opts.StartPoint = [0.03 0.8 0.9];
% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft, opts );
% Plot fit with data.
figure( 'Name', 'ERF fit 1' );
h = plot( fitresult, xData, yData );
legend( h, 'data', 'ERF fit', 'Location', 'NorthEast' );
% Label axes
xlabel('Displacement [mm]')
ylabel('Power (or Voltage) [W] (or [V])')
grid on
fitresult