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

14 visualizzazioni (ultimi 30 giorni)
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?

Risposte (1)

Philip Caplan
Philip Caplan il 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 Commento
Eric Diaz
Eric Diaz il 17 Apr 2015
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?

Accedi per commentare.

Categorie

Scopri di più su Fit Postprocessing in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by