Filter löschen
Filter löschen

Subscripted assignment dimension mismatch in for loop

1 Ansicht (letzte 30 Tage)
Arbol
Arbol am 11 Jun. 2017
Kommentiert: Star Strider am 11 Jun. 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 Kommentar
Arbol
Arbol am 11 Jun. 2017
Or the following: In an assignment A(:) = B, the number of elements in A and B must be the same.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Star Strider
Star Strider am 11 Jun. 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 Kommentare
Arbol
Arbol am 11 Jun. 2017
Bearbeitet: Arbol am 11 Jun. 2017
Oh sorry, yes, you are right! It will return 4 parameters. You are the best man! haha

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by