运行程序后 p q 为什么为常数了? T 为时间 q应该是随T变化的函数 但运行后得到 q=NaN 且不出图像
clear ;
clc;
syms T0 toa k T_e n v u b M_T m_T mu h_ij r z_j f;
f=zeros(10,10);
h_ij=zeros(1,1);
h2=zeros(10,10);
T0=1;
toa=0.2;
k=0;
T_e=10;
n=10;
v=0;
b=0.6;
q=0;
p=0;
h=0;
r=0.2;
z_j=0.1;
e=0;
a=0;
T(1, 1) =0;
M_T(1,1)= 0;
m_T(1,1)= 0;
i=0;
while T<T_e
T(a + 2, 1) = T(a + 1, 1) + toa;
a=a+1 ;
k=0;
while k<n
z=1+(2-1).*rand([a,k]);
sort(z);
k=k+1;
end
while 1.0+r<=2
for i=2:1:9
e=e+1;
if z(a,(i-1))<1.2+r && z(a,(i-1))>1.0+r
h=h+1;
h2(a,(i-1))=h/e*0.1;
f(a,(i-1))=h2(a,(i-1))./(z(a,(i-1))-z(a,i));
end
r=r+z_j;
end
end
v=v+1;
k=0;
z_max=max(max(z));
z_min=min(min(z));
u=z_max-z_min;
if u<=b
mu=1;
m_T=m_T+ mu;
M_T=M_T + 1;
end
if v<M_T
else
q=(1-(m_T/M_T)) ;
p=m_T/M_T;
qdouble=double(q);
plot(T,q,'bo') ;
hold on;
grid on;
end
end
得到q随T变化的图像
因为你的u<=b
恒成立,所以M_T=M_T + 1;
永远不会被执行,所以M_T
恒为0
,所以m_T/M_T
是分母为0
的数,所以m_T/M_T=NaN
,所以q=(1-(m_T/M_T)) ;
得到的结果q
也是NaN
,所以最终不能画图(画图时是空白);
建议检查并可能添加u>b情况下的M_T的改变,具体实施还需要题主自行决断