MATLAB Answers


fitnlm w/ table using not all Variables

Asked by Benedict Kriegler on 10 Dec 2015
Latest activity Commented on by Benedict Kriegler on 14 Dec 2015
I am looking for a way to specify a modelfun for a non linear regression, using fitnlm, without using all Variables of the table. mdl = fitnlm(tbl,modelfun,beta0) Is it somehow possible to specify a modelfun by using the VariableNames of the table including the response variable?
I already performed the regression with a new table, containing the relevant variables only, but i would like to filter the table by other variables and i would like to prevent from double storage of large datasets.
Thanks in advance,


Sign in to comment.

1 Answer

Answer by Tom Lane
on 13 Dec 2015
 Accepted Answer

You can specify modelfun using variable names:
load carsmall
t = table(MPG,Weight,Origin)
nlm = fitnlm(t,'MPG~b1+b2*Weight^b3',[1 1 1])
In this case the property nlm.Data will contain all the variables in the table, including Origin. However, you could pass in just the part of the table you need:
nlm = fitnlm(t(:,{'MPG' 'Weight'}),'MPG~b1+b2*Weight^b3',[1 1 1])

  1 Comment

Thanks, it's working fine.

Sign in to comment.