# Creating for loop for a piecewise function

25 views (last 30 days)
Petch Anuwutthinawin on 12 Jun 2021
Answered: Star Strider on 12 Jun 2021
I have made a piecewise function using if statements that inputs Vs as a vector and outputs VL as a number. I need to loop this piecewise function for each element of the input vector, each loop I need it to display the VL output into a row vector.
if Vs<=0.6; %if this is true
VL=0;% it prints a 0
else
VL=Vs-0.6; % prints a Vs-0.6 value.
end
%I need to make a for loop that will loop this for the entire vector input of Vs and display all the values in a
% row vector.
%I have tried to make a loop as follows:
for V=0:Vs;
if V<=0.6; %if this is true
VL(V)=0;% it prints a 0
else
VL(V)=V-0.6; % prints a Vs-0.6 value.
end
end
%All this outputs is zero, and it does not loop and does not output a
%vector.

Star Strider on 12 Jun 2021
One problem is that MATLAB subscripts are integers greater than 0, so setting ‘V’ to 0 and using it as a subscript will fail.
Try this —
Vs = 5; % Create Value
Vv=0:Vs; % Define As A Vector
for k = 1:numel(Vv)
if Vv(k)<=0.6; %if this is true
VL(k)=0;% it prints a 0
else
VL(k)=Vv(k)-0.6; % prints a Vs-0.6 value.
end
end
VL
VL = 1×6
0 0.4000 1.4000 2.4000 3.4000 4.4000
.