1

我做了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
4

1 回答 1

0

Plot 需要两个输入,第一个描述水平轴,第二个描述垂直轴。当您不提供两个输入时,它会计算单个输入的长度(在这种情况下,长度为 5200-5000 = 200),并且它只使用 1 到该长度(在这种情况下为 1:200),就好像它是水平轴变量的值。

我想你想发出命令:

plot(5000:5200, X(5000:5200,1), 'r')

通常 Matlab 会调整绘图轴以获得更好的默认视图,因此它可能仅凭借一些默认绘图约定将轴显示到索引 250。set(gca, 'xlim', [5000 5200])如果您愿意,也可以类似地使用。

于 2012-04-12T05:23:49.937 回答