create dummy variable for different time periods

1 visualizzazione (ultimi 30 giorni)
I have to create dummy variable for interval1 and interval 2
Suppose,I have equation;
Dependent = exp(1.2 + 0.0099*(Interval1) - 0.0625*(Interval2))* exp (-0.0134*t )
I want to run these equations from time, t = 20 to t = 100
and
interval1 = 1 if t = 20:24 else 0
interval2 = 1 t = 25:100 else 0
I am stuck with the code, please guide me. I want to have an easy solution.

Risposta accettata

Star Strider
Star Strider il 27 Gen 2021
Try this:
Dependent = @(t) exp(1.2 + 0.0099*t).*((t>=20) & (t <= 24)) - 0.0625*exp(-0.0134*t ).*((t>=25) & (t<=100));
t = linspace(0, 110, 1E+4);
figure
plot(t, Dependent(t), 'LineWidth',1.25)
grid
xlabel('t')
ylabel('Dependent(t)')
There are some discontinuities because of the way you defined the limits of the segments.
  2 Commenti
susman
susman il 27 Gen 2021
Thank you, it worked perfectly in this case. But one more question.
If I have a matrix, in which each cell is definied by a function like above.
for example,
Matrix = [q11 q12 q13; q21 q22 q33; q31 q32 q33]
where each qii is a function like above:
Then if I define each qii, the way you suggested. It would not cause any problem? Like,
q11 = @(t) exp(1.2 + 0.0099*t).*((t>=20) & (t <= 24)) - 0.0625*exp(-0.0134*t ).*((t>=25) & (t<=100));
Star Strider
Star Strider il 27 Gen 2021
My pleasure!
In this example, ‘q11’ defines a vector. I have no idea what the other elements of ‘Matrix’ are, however so long as the dimensions are the same for all of them (vectors the same size as ‘t’) there should be no problems.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by