How do I create a loop for an equation using if statements?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I want to define an equation/function, to later plot, that changes every cycle. If we consider each cycle to last for example 2 seconds, I want the equation to be defined as:
- x = y for the first cycle (from t=0s to t=2s);
- x = -y for every even number cycle (from t=2s to t=4s, from t=6s to t=8s, etc)
- x= c, where c is a constant for every odd number cycle (from t=4s to t=6s, from t=8s to t=10s, etc)
Initially, I thought of using if statements like here, but this would require making an if statement for each cycle, and therefore if I required a large number of cycles to be plotted the if statement would be very long.
How can I write this down in a way that I don't require a statement for each cycle to be plotted/equated?
Réponses (1)
Jan
le 9 Nov 2021
Modifié(e) : Jan
le 9 Nov 2021
Use "logical indexing":
y = rand(1, 100);
t = 0:99; % Prefer the cyclenumber, not the seconds
c = 17;
index = (t == 0);
x(index) = y(index);
index = (t > 0) & (rem(t, 2) == 0);
x(index) = -y(index);
index = (t > 0) & (rem(t, 2) == 1);
x(index) = c;
0 commentaires
Voir également
Catégories
En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!