Assigning a value to a vector in a for loop

I'm trying to assign individual times to a vector 'toa' in a loop using:
for jj = 1:nvar
ktau = jj * tau0;
toa(jj) = jj * tau0;
{buncha calcs}
end
I use ktau in following equations, and I want to keep a vector of all the times used.
When I try to run the function I get: In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in alvarQ (line 115) toa(jj) = jj.*tau0; % this was time calc above
Why is that? Shouldn't that work?
Thanks, Kim

Réponses (3)

Image Analyst
Image Analyst le 14 Sep 2014

0 votes

Evidently tau0 is a vector, not a scalar, so the product of jj*tau0 is also a vector. You can't stuff a vector of multiple elements into a single element of toa. Maybe you meant tau0(jj)???? What does "whos ktau" show?
Star Strider
Star Strider le 14 Sep 2014

0 votes

Is ‘tau0’ a vector or a scalar?
Otherwise, your ‘{buncha calcs}’ could be the problem. Are you doing anything to ‘toa’ or ‘tau0’ in them?
Kim
Kim le 14 Sep 2014

0 votes

Y'all, thanks for the help. Based on what you said I went and looked at tau0. It was supposed to be a scalar. I'd read it out of a file header. However it was stored as text i.e. '9.9998e-6' instead of 9.9998e-6.
Quick use of str2num straightened me out, and things ran fine.

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Question posée :

Kim
le 14 Sep 2014

Commenté :

le 14 Sep 2014

Community Treasure Hunt

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

Start Hunting!

Translated by