当前位置:编程学习 > Matlab >>

MATLAB运行程序后,出现了一下busy,但后面没有结果出来,也没有提示,求高手指点,看看程序有没有问题

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
追问:
busy不是一直显示的,闪了一下就不见了,这表示还在计算吗?
如果是variable非常大的原因,有解决的办法吗?望指教!
busy 一下就没了是正常的,因为已经解开了。 你确定你的program 不工作还是只是没有output出你的结果?在program 结尾加个 disp('end program') 试试。
variable 非常大一般没别的办法,只能等。 matlab别的都好就是慢。 你可以试试用c啊。比matlab要快多了。
答案:matlab 会ouput busy 是因为 stuck in a infinite loop. 但我看你的 code while loop 写的都还ok,没有什么大错误。你应该看看你的main 和别的function。再check一下你pass in 的 variable。 如果你的variable非常大那也有可能matlab 速度跟不上。 但一般来说超过1分钟还没停就代表有问题了。
其他:在program 结尾加个 disp('end program') 试试。
variable 非常大一般没别的办法,只能等。 matlab别的都好就是慢。 你可以试试用c啊。比matlab要快多了。

上一个:求高手指教MATLAB程序,运行后出现??? Error using ==> crank_slider_velocity Too many input arguments百度知道
下一个:关于MATLAB程序设计 发我邮箱605570724@qq.com 要原创

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,