Plot all if condition with for loop
2 次查看(过去 30 天)
显示 更早的评论
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)
0 个评论
采纳的回答
Alan Stevens
2021-4-29
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 个)
Jan
2021-4-29
编辑:Jan
2021-4-29
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
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Discrete Data Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!