Error using a for-loop

The following gives an error and I don't know why. The code runs perfectly when I leave '(i_testen)' away behind 'Enkel_hoek_afg'.
for i_testen=1:5
...
Enkel_hoek_afg(i_testen) = Enkel_hoek(1:Afg_c_RANK_RKNE(2,1))
end
Error: In an assignment A(I) = B, the number of elements in B and I must be the same.

 Risposta accettata

Star Strider
Star Strider il 19 Dic 2014
See if this solves it:
for i_testen=1:5
...
Enkel_hoek_afg(i_testen,:) = Enkel_hoek(1:Afg_c_RANK_RKNE(2,1))
end
This assumes ‘Enkel_hoek(1:Afg_c_RANK_RKNE(2,1))’ is a row vector of constant length.
If it is not, create a cell array instead:
Enkel_hoek_afg{i_testen} = Enkel_hoek(1:Afg_c_RANK_RKNE(2,1))
Note that here, curly brackets ‘{}’ replace parentheses ‘()’ on the left-hand side of this assignment.

6 Commenti

Sam
Sam il 19 Dic 2014
Matlab still gives an error :(
Does it throw an error for the cell array? It shouldn’t.
If it throws an error for the first option:
Enkel_hoek_afg(i_testen,:) = Enkel_hoek(1:Afg_c_RANK_RKNE(2,1))
what are the row and column sizes of ‘Enkel_hoek’?
What is the value stored in ‘Afg_c_RANK_RKNE(2,1)’ when it throws the error?
Sam
Sam il 19 Dic 2014
Modificato: Sam il 19 Dic 2014
It gives the following error: Subscripted assignment dimension mismatch. Enkel_hoek is 677x1 Afg_c_RANK_RKNE is 2x1 and has values 0 for (1,1) and 328 for (2,1). But this value 328 changes for each measurement.
If the length changes with each iteration, use my cell array solution instead:
Enkel_hoek_afg{i_testen} = Enkel_hoek(1:Afg_c_RANK_RKNE(2,1))
Note that here, curly brackets ‘{}’ replace parentheses ‘()’ on the left-hand side of this assignment.
Sam
Sam il 20 Dic 2014
Strange, when I tried it the first time it didn't work. Now I've tried it again, and it works... Well, thanks a lot!
Star Strider
Star Strider il 20 Dic 2014
My pleasure!

Accedi per commentare.

Più risposte (0)

Categorie

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by