Plot all if condition with for loop

Hello :) I have encountered a problem with my code in matlab
I would like to plot a graph with all these condtions but i don't know how to make it
All the calculs here are correct by the way but i don't know how the for loop with the if condition work with the plot function
can someone help me ?
for s=0:0.1:1;
if s > 0 & s <1 %avoid dividing by 0
Z2=sqrt((X.^2)+(R2./s).^2);
I1=U./(sqrt(X.^2+(R2./s).^2));
Pa=(U.^2./Rf)+(I1.^2).*(R2./s);
Q=(U.^2./Xm)+(I1.^2).*X;
Pr=(I1.^2)*R2./s;
Pjr=I1.^2*R2;
Pmc=Pr-Pjr;
rendement=Pmc/Pa;
N=Ns.*(1-s);
else
N =0;
rendement=0;
end
figure(6)
plot(N,rendement)

 Accepted Answer

Do you mean like this:
s = 0:0.1:1;
for i=1:numel(s)
if s(i) > 0 && s(i) <1 %avoid dividing by 0
Z2=sqrt((X.^2)+(R2./s(i)).^2);
I1=U./(sqrt(X.^2+(R2./s(i)).^2));
Pa=(U.^2./Rf)+(I1.^2).*(R2./s(i));
Q=(U.^2./Xm)+(I1.^2).*X;
Pr=(I1.^2)*R2./s(i);
Pjr=I1.^2*R2;
Pmc=Pr-Pjr;
rendement(i)=Pmc/Pa;
N(i)=Ns.*(1-s(i));
else
N(i) =0;
rendement(i)=0;
end
end
figure(6)
plot(N,rendement)

1 Comment

Julien Daltin
Julien Daltin on 29 Apr 2021
Edited: Julien Daltin on 29 Apr 2021
Yes something like that ! But i saw that ia have a mistake , because when s = 1 → N=1500 and rendement = 0 too , but i will try by myself ! Thank you !!

Sign in to comment.

More Answers (1)

Jan
Jan on 29 Apr 2021
Edited: Jan on 29 Apr 2021
figure;
axes('NextPlot', 'add'); % as: hold on
for s = 0:0.1:1
if s > 0 & s < 1 %avoid dividing by 0
Z2 = sqrt((X.^2) + (R2 ./ s).^2);
I1 = U ./ (sqrt(X.^2 + (R2 ./ s).^2));
Pa = (U .^2 ./ Rf) + (I1.^2) .* (R2 ./ s);
Q = (U .^2 ./ Xm) + (I1.^2) .* X;
Pr = (I1.^2) * R2 ./ s;
Pjr = I1.^2 * R2;
Pmc = Pr - Pjr;
rendement=Pmc / Pa;
N = Ns .* (1 - s);
plot(N, rendement, 'b.')
end
end

Categories

Find more on Graphics Performance 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!