MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Simon on 27 May 2013

I got a matrix A (1x15) with each cell containing 524 x 4 of data, and a Y matrix containing 524 x1 data. I was going for :

For i = 1:15 mdl{i} = LinearModel.fit(A{1,i},Y) end

but it didn't work

Thanks in advance!

*No products are associated with this question.*

Answer by the cyclist on 28 May 2013

Accepted answer

This worked for me:

% Some pretend data A = cell(1,15); for i=1:15 A{i} = rand(524,4); end Y = rand(524,1);

% Do the fits for i = 1:15 mdl{i} = LinearModel.fit(A{1,i},Y); end

Show 3 older comments

Simon on 29 May 2013

I mostly need the r squared, p value t-test and fisher. Is there a way to gather these without having to use mdl?

the cyclist on 29 May 2013

If the code I posted is giving completely empty results, I suggest you file a bug report.

An alternative to using LinearModel.fit is the regress() command.

Simon on 30 May 2013

I might report it eventually but i found out that this particular function generate an object and apparently i'm not supposed to have many objects in a single matrix. I manage to gather the Rsquared using Varname.Rsquared.Adjusted so that only answers pop out in a (1,15) matrix. The only problem i have here is that i don't have the combination variable names anymore and that might cause problem... If i try with 50 variables i won't be able to understand the answer! Thank you!!

## 3 Comments

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/77124#comment_151328

Any error message?

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/77124#comment_151389

It seems to work but i end up having a 1x15 matrix of mdl, but all cells are empty... it's weird

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/77124#comment_151469

No error message :/