Azzera filtri
Azzera filtri

Subscripted assignment dimension mismatch in for loop

1 visualizzazione (ultimi 30 giorni)
Does anyone know what's wrong with this? I have tdatas and tissdatas with size (225x4). Every time I run this, I get the following error: Subscripted assignment dimension mismatch. Where am I wrong in this code? I just don't understand it or find it.
for i=1:length(tdatas(1,:))
fun = @(p,tdatas) objfunction(p,tdatas,tu);
z(i)=lsqcurvefit(fun,param0,tdatas(:,i),...
tissdatas(:,i),[0 0 0 0],[1 1 1 1],options);
end
  1 Commento
Arbol
Arbol il 11 Giu 2017
Or the following: In an assignment A(:) = B, the number of elements in A and B must be the same.

Accedi per commentare.

Risposta accettata

Star Strider
Star Strider il 11 Giu 2017
You are estimating and returning 4 parameters, and assigning them to a 1 dimensional scalar. I do not know whether you are returning row or column vectors, so the easiest way is to use ‘z’ as a cell array:
z{i} = lsqcurvefit(fun,param0,tdatas(:,i),...
tissdatas(:,i),[0 0 0 0],[1 1 1 1],options);
Note the curly brackets ‘{}’ denoting cell array indexing.
  4 Commenti
Arbol
Arbol il 11 Giu 2017
Modificato: Arbol il 11 Giu 2017
Oh sorry, yes, you are right! It will return 4 parameters. You are the best man! haha

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements 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