MATLAB运行程序后,出现了一下busy,但后面没有结果出来,也没有提示,求高手指点,看看程序有没有问题
functionNJ1=pmassnum(r,v)s=length(r);s=s-1;i=1;whilei<sm=[r(i),r(i+1),r(i+2)];n=[v(i)...
function NJ1=pmassnum(r,v)
s=length(r); s=s-1;
i=1;
while i<s
m=[r(i),r(i+1),r(i+2)]; n=[v(i)/100,v(i+1)/100,v(i+2)/100];
b=polyfit(m,n,2);
a(i,1)=b(1); a(i,2)=b(2); a(i,3)=b(3);
i=i+1;
end
i=1;
while i<s
e=-12*a(i,1)/(pi)*(1/r(i+1)-1/r(i));
f=-3*a(i,2)/(pi)*(1/r(i+1)^2-1/r(i)^2);
if i==1
sm(i)=e+f;
if sm(i)<0
sm(i)=0;
end
else
sm(i)=sm(i-1)+e+f;
if sm(i)<0
sm(i)=0;
end
end
i=i+1;
end
e=-12*a(i-1,1)/(pi)*(1/r(i+1)-1/r(i));
f=-3*a(i-1,2)/(pi)*(1/r(i+1)^2-1/r(i)^2);
sm(i)=sm(i-1)+e+f;
i=1;
while i<s+1
NJ(i)=1/2.71*1e12*sm(i)/1e06;
if i==1
NI(i)=NJ(i);
else
NI(i)=NJ(i)-NJ(i-1);
end
i=i+1;
end 展开
s=length(r); s=s-1;
i=1;
while i<s
m=[r(i),r(i+1),r(i+2)]; n=[v(i)/100,v(i+1)/100,v(i+2)/100];
b=polyfit(m,n,2);
a(i,1)=b(1); a(i,2)=b(2); a(i,3)=b(3);
i=i+1;
end
i=1;
while i<s
e=-12*a(i,1)/(pi)*(1/r(i+1)-1/r(i));
f=-3*a(i,2)/(pi)*(1/r(i+1)^2-1/r(i)^2);
if i==1
sm(i)=e+f;
if sm(i)<0
sm(i)=0;
end
else
sm(i)=sm(i-1)+e+f;
if sm(i)<0
sm(i)=0;
end
end
i=i+1;
end
e=-12*a(i-1,1)/(pi)*(1/r(i+1)-1/r(i));
f=-3*a(i-1,2)/(pi)*(1/r(i+1)^2-1/r(i)^2);
sm(i)=sm(i-1)+e+f;
i=1;
while i<s+1
NJ(i)=1/2.71*1e12*sm(i)/1e06;
if i==1
NI(i)=NJ(i);
else
NI(i)=NJ(i)-NJ(i-1);
end
i=i+1;
end 展开
展开全部
matlab 会ouput busy 是因为 stuck in a infinite loop. 但我看你的 code while loop 写的都还ok,没有什么大错误。你应该看看你的main 和别的function。再check一下你pass in 的 variable。 如果你的variable非常大那也有可能matlab 速度跟不上。 但一般来说超过1分钟还没停就代表有问题了。
追问
busy不是一直显示的,闪了一下就不见了,这表示还在计算吗?
如果是variable非常大的原因,有解决的办法吗?望指教!
追答
busy 一下就没了是正常的,因为已经解开了。 你确定你的program 不工作还是只是没有output出你的结果?在program 结尾加个 disp('end program') 试试。
variable 非常大一般没别的办法,只能等。 matlab别的都好就是慢。 你可以试试用c啊。比matlab要快多了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询