Come compilare un array tornando all'inizio quando sono alla fine dell'array
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Buonasera, nel mio programma matlab per la tesi di laurea vado a compilare dei vettori in base a ciò che accade nell'intervallo temporale (24 time step, quindi lunghezza vettori =24). Si verificano delle certe condizioni che mi condizionano anche i 3 intervalli successivi rispetto al momento in cui accadono.
Se tale condizione si verifica alla fine dell'array, quindi nei time-step, 22,23 o 24, devo far in modo di sovrascrivere i valori iniziali dell'array che ho creato in precedenza (quindi alla posizione 1,2,3 eccetera in base all'istante in cui mi trovo, sempre considerando KK+3). Gli array che devo compilare sono 4 e sono G,B,SoC, Curt.
Vi ringrazio se qualcuno mi può aiutare.
for i=kk:(kk+3)
if (kk+3)<length(Pcar)
G(i)=0
B(i)=B(ist_batt)-Pcar(i)
Curt(i)=0
SoC=B(i)/Cap*100
elseif (kk+1)>length(Pcar)
Devo dire di riempire la posizione dei vettori n.24,1,2,3,
che significa quindi dover ritornare a sovrascriver l'inizio dell'array
elseif (kk+2)>length(Pcar)
devo inserire i valori in 23,24,1,2
elseif (kk+3)>length(Pcar)
devo inserire i valori in 22,23,24,1
end
end
0 commentaires
Réponses (1)
Dheeraj
le 25 Sep 2023
Hi,
I understand you are trying to populate a vector with elements depending upon previous elements if satisfied a condition you can modify your code this way so you could achieve the circular consistency.
% Initialize arrays
G = zeros(1, 24);
B = zeros(1, 24);
SoC = zeros(1, 24);
Curt = zeros(1, 24);
% Loop through your time steps
for t = 1:24
% Your code to compute G, B, SoC, and Curt at the current time step
% Check if the condition occurs at the end of the time interval
if t >= 22
% Update the arrays accordingly, considering the 3rd consecutive element
G(t - 21) = ... % Update G
B(t - 21) = ... % Update B
SoC(t - 21) = ... % Update SoC
Curt(t - 21) = ... % Update Curt
end
end
% Continue with your calculations or analysis
Hope this helps!
0 commentaires
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!