Subscripted assignment dimension mismatch in for loop

1 vue (au cours des 30 derniers jours)
Arbol
Arbol le 11 Juin 2017
Commenté : Star Strider le 11 Juin 2017
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 commentaire
Arbol
Arbol le 11 Juin 2017
Or the following: In an assignment A(:) = B, the number of elements in A and B must be the same.

Connectez-vous pour commenter.

Réponse acceptée

Star Strider
Star Strider le 11 Juin 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 commentaires
Arbol
Arbol le 11 Juin 2017
Modifié(e) : Arbol le 11 Juin 2017
Oh sorry, yes, you are right! It will return 4 parameters. You are the best man! haha
Star Strider
Star Strider le 11 Juin 2017
Thank you!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by