variable is not saving in a for loop
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Miguel Albuquerque
le 12 Juil 2022
Modifié(e) : Stephen23
le 13 Juil 2022
Hey guys, I want to save xMax3 and yMax3 in two different matrixes, and it has values in each iteration, however with my code, it only saves values different from zero in the first and last iteration, where is the error. Thanks in advance
counter=1;
surveillance_reshaped = reshape(Surveillance_signal, 100000, 2, []);
reference_reshaped = reshape(Reference_signal, 1000, 2, []);
sz = size(surveillance_reshaped);
for i = 1:sz(3)
r = reference_reshaped(:,1,i);
s = surveillance_reshaped(:,1,i);
[afmag3,doppler3] = ambgfun(r,s,Fs,[250000 250000],'Cut','Delay');
afmag3(afmag3>1 )= 1;
[pks3,index3] = max(afmag3);
xMax3 = doppler3(index3);
yMax3 = pks3;
yMax3(:,i)=yMax3;
xMax3(:,i)=xMax3;
counter=counter+1
end
0 commentaires
Réponse acceptée
dpb
le 12 Juil 2022
"... where is the error. (?)"
...
xMax3 = doppler3(index3);
yMax3 = pks3;
...
overwrites/redefines the two variables in their entirety each pass through the loop, thus eliminating the previous value. MATLAB assignment without subscripting means "the whole thing".
7 commentaires
dpb
le 12 Juil 2022
You're calculating doppler3 every pass, but to preallocate you need to know before the loop how long it is -- or you can continue to let the two arrays be dynamically allocated each pass through the loop--although it is far less efficient, unless the size of the loop is very large it will likely not be a big-enough performance hit to matter significantly.
So, on that presumption, before the loop begins insert
xMax3=[]; yMax3=[]; % create variables; empty initially; just a reference exists
Then, in the loop replace the four lines with only two...
xMax3(:,i)=doppler3(index3);
yMax3(:,i)=pks3;
and you're done. Reference the column every time; the initial empty assignment will allow the undefined dimension of the length of the column to be the initial size of the RHS vector w/o specifically being preallocated to an exact size.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Whos dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!