MATLAB Answers

0

How to use the function 'fit' on array of data and create an array of 'fit objects'

Asked by Eric Diaz on 16 Apr 2015
Latest activity Commented on by Eric Diaz on 17 Apr 2015
The 'fit' function does not seem to be friendly with arrays / matrices / variables.
for ii = 1:size(Y,2)
fitVar(ii)=fit(X,Y(:,ii),'exp1');
end
returns
Error using cfit/subsasgn (line 7)
Can't assign to an empty FIT.
while
for ii = 1:size(Y,2)
fit(X,Y(:,ii),'exp1');
end
works fine.
However, I can't do
fit(X,Y,'exp1')
if X is a dependent vector [10 x 1] which and Y is an independent matrix [10 x nSamples].
What is the solution?

  0 Comments

Sign in to comment.

Tags

1 Answer

Answer by Philip Caplan on 17 Apr 2015

Hi Eric - you cannot have arrays of "cfit" or "sfit" objects, which is the type returned by "fit". As such, you cannot index into this array because MATLAB thinks you are assigning (via subscripting) to an empty fit object. Instead, you can hold your "fit" objects in a cell array. The only change you need to make to your code is to use curly braces {} to index into "fitVar":
for ii = 1:size(Y,2)
fitVar{ii} = fit(X,Y(:,ii),'exp1');
end

  1 Comment

Thank you for you're reply. This only partially solves the problem. Is there no way for "cfit" or "sfit" "fit" family of functions to do perform their job on matrices? Like other linear algebra matrix functions in MATLAB?

Sign in to comment.