How do I create a loop for an equation using if statements?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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?
Antworten (1)
Jan
am 9 Nov. 2021
Bearbeitet: Jan
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!