How do I plot a certain interval?
142 次查看(过去 30 天)
显示 更早的评论
Hi guys,
So I'm trying to plot an interval between [8 12], but I don't know where to start, as I'm not using x-values in my function.
So this is the idea:

And this is my script:
for N = 8;
Mc = [-2:0.01:15]*N;
Pi_c = 1+(2*N-1)*(3-2*Mc/N).*(Mc/N).^2;
end
plot(Mc,Pi_c,'k')
axis([-4 13 1 17])
xlabel('m_c')
ylabel('pressure ratio')
title('Simplified compressor characteristic')
Any help would be greatly appreciated!
0 个评论
采纳的回答
Star Strider
2019-3-23
This will overplot the region (8,12) with a red dashed line:
for N = 8;
Mc = [-2:0.01:15]*N;
Pi_c = 1+(2*N-1)*(3-2*Mc/N).*(Mc/N).^2;
end
plot(Mc,Pi_c,'k')
hold on
McIdx = (Mc >= 8) & (Mc <= 12); % Select Elements (Logical Vector)
plot(Mc(McIdx), Pi_c(McIdx), '--r') % Plot Range
hold off
axis([-4 13 1 17])
xlabel('m_c')
ylabel('pressure ratio')
title('Simplified compressor characteristic')
Experiment to get the result you want.
更多回答(1 个)
John D'Errico
2019-3-23
I'm confused. That you are not using x-values does not seem relevant. You plotted Mc on the horizontal axis.
Next, the line:
for N = 8
Does not create a loop. Well, it does, but the loop has length only one step, at N=8. All it does is assign the value of 8 to N.
Next, you want Mc to lie between 8 and 12.
N = 8;
Mc = linspace(8,12,100);
Pi_c = 1+(2*N-1)*(3-2*Mc/N).*(Mc/N).^2;
plot(Mc,Pi_c)

Which is only the region you seem to be interested in. We can even add some white space on the axes, to show you that indeed, only the part of interest was created.
axis([-4,13,0,17])

另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!