How to fit a dataset with two independant variables (of different dimensions) and one dependant variable?

1 view (last 30 days)
I need to fit data points of an Intensity-Duration-Frequency curve into a non-linear equation of the form
i=K*(T^a)/((t+b)^n)
where i is the intensity(dependant),T the return period(independant) and t the duration(independant).
K,a,b,n are the coefficients to be found.
t={ 1 2 4 5 10 12 15 24 36 48 }
T={2 5 10 25 50 100}
I was attempting nlinfit with the two independant variable data sets to be in one single matrix,but dimensions do not agree for the two.How would i fit these?

Answers (1)

Jeff Miller
Jeff Miller on 16 Mar 2021
You need give nlinfit the corresponding 60 values of t and T. Something like this (but check the order of the resulting 60 points):
t=[ 1 2 4 5 10 12 15 24 36 48];
T=[2 5 10 25 50 100];
[t2, T2] = ndgrid(t,T);
t2 = reshape(t2,60,1);
T2 = reshape(T2,60,1);
% now pass t2 and T2 to nlinfit

Categories

Find more on Optimization Toolbox in Help Center and File Exchange

Products


Release

R2015a

Community Treasure Hunt

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

Start Hunting!