Azzera filtri
Azzera filtri

Assigning a value to a vector in a for loop

5 visualizzazioni (ultimi 30 giorni)
Kim
Kim il 14 Set 2014
Commentato: Star Strider il 14 Set 2014
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

Risposte (3)

Image Analyst
Image Analyst il 14 Set 2014
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 il 14 Set 2014
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 il 14 Set 2014
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.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by