我进行了10000次模拟,想要查看5000-5200之间的部分模拟。我可以使用下面的代码查看它,但x轴表示0-250。我希望x轴显示5000-5200的确切数字。此外,由于某些原因轴的运行高达250,因此在图的末尾似乎有一个小间隙。我只想查看这个设定时间的数字,x轴显示精确的标签,最后没有间隙。
由于
N=10000;%Number of simulation
P=0.02;
Q = zeros(N,1); %current value of queue
X=zeros(N,1);%simulation data
Ci=0;
L=0.9;
Bu=zeros(N,1);
Bs=30;
Bd1=50;
Bd2=270;
Ti=0;
for Ti=2:N
U=rand(1);
a=log10(U);
b=log10(1-P);
c=(a/b);
d=1+c;
X(Ti)=round(d);
Ci=Ci+1;
if X(Ti)< (L)*(Bs)
Bu(Ti)=Bs;
else if X(Ti) < (L)*(Bs+Bd1)
Bu(Ti)=Bs+Bd1;
else
Bu(Ti)=Bs+Bd1+Bd2;
end
end
Ti=Ti+1;
end
plot(X(5000:5200,1),'r');
set (gca,'ylim',[0 400]);
hold on;
plot(Bu(5000:5200,1),'b');
set (gca,'ylim',[0 400]);
hold off
答案 0 :(得分:0)
Plot需要两个输入,第一个描绘水平轴,第二个描绘垂直轴。当你不提供两个输入时,它会计算单个输入的长度(在这种情况下长度为5200-5000 = 200),并且它只使用1到那个长度(在这种情况下为1:200),就好像它一样是水平轴变量的值。
我想你要发出命令:
plot(5000:5200, X(5000:5200,1), 'r')
Matlab通常会调整绘图轴以获得更好的默认视图,所以它可能只是通过一些默认绘图惯例将轴显示到索引250。如果您愿意,也可以类似地使用set(gca, 'xlim', [5000 5200])
。