repeated condition in a for loop

1 view (last 30 days)
m m
m m on 1 Jun 2023
Commented: Rik on 2 Jun 2023
N = 50000000;
f = 1E6;
DT = 1E-4;
for L = 1:N
T = DT*double(L); % period
a = 0.1;
b =40*T;
i want to add this condition here:
if 0<t<a*b
A = sin(2*pi*f*t)
elseif a*b<t<b
A = 0;
end
end
thsi condition should be repeated in the loop for each 40*T, knowing that we have 5000 periods

Answers (1)

Rik
Rik on 1 Jun 2023

Conditions like 0<t<a*b should be split in Matlab to 0<t && t<a*b.

Note that your code will be overwriting the result and that it relies on undefined variables.

If you want specific suggestions, you will have to explain what you want.

  2 Comments
m m
m m on 1 Jun 2023
i want to make a condition on this expression A = sin(2*pi*f*t) (A is an excitation )
this expression should be taken into accound only if the condition 0<t<a*b is verfied, if not A sould be zero.
but i have for loop of time (L iteration for time),
b = 40 T with T is the period defined as T = DT* double(L) , with DT is the time step
my objective is to make the excitation A which is sinisoidal excitaion to a pulsed exciation ( by this condition )
i hope this can help
Rik
Rik on 2 Jun 2023

Where exactly do you want to define t?

If you want to assign 0 to all other values, you can use the condition in the calculation itself:

A = sin(2*pi*f*t)*double(0<t && t<a*b);

This works for a scalar t.

What do you want to do next? How do you want to use the value of A next?

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!