Creating for loop for a piecewise function

54 vues (au cours des 30 derniers jours)
Petch Anuwutthinawin
Petch Anuwutthinawin le 12 Juin 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
VL=Vs-0.6; % prints a Vs-0.6 value.
%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
VL(V)=V-0.6; % prints a Vs-0.6 value.
%All this outputs is zero, and it does not loop and does not output a

Réponse acceptée

Star Strider
Star Strider le 12 Juin 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
VL(k)=Vv(k)-0.6; % prints a Vs-0.6 value.
VL = 1×6
0 0.4000 1.4000 2.4000 3.4000 4.4000

Plus de réponses (0)


En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by