求matlab大神看看我的程序,这程序一直在运行busy但是出不来结果

matlab小白,只敢把书上的例程稍微改了一下,书上的0-1整数规划目标函数只能是线性的我把它改成对函数的,因为要求的目标函数是个分段函数。

function [x,f]=guihua(fun,A,b,N)
[m,n]=size(A);x=[];f=fun(x);
i=1;
while i<=2^n
B=de2bi(i-1,n)';
t=A*B-b;t11=find(t(1:N,:)~=0);
t12=find(t(N+1:m,:)>0);
t1=[t11;t12];
if isempty(t1)
f=min([f,fun(x)]);
if fun(x)==f,x=B;end
end
i=i+1;
end

然后最后一直在运行,几个小时都出不来,ctrl+c出来以后发现,卡在B=de2bi那一步,可能是我的系数矩阵(31*20)太大了?还是程序有错?

第1个回答  2017-05-27
挺大的,要循环100万次。你可以用小的系数矩阵试试

为什么我这个matlab程序运行后一直显示busy?
原因是,在迭代过程中R(i)始终没能满足R(i)<=0.1的循环结束条件,所以循环就一直继续下去。请检查R的更新条件,是否存在可能达到你要求的结束条件?大致看了一下,好像是按照导引律计算接近某个目标的吧?需要注意的是,接近目标的过程往往很难达到一个很小的范围,主要有两方面的原因:(1)导引律...

MATLAB运行程序后,出现了一下busy,但后面没有结果出来,也没有提示...
matlab 会ouput busy 是因为 stuck in a infinite loop. 但我看你的 code while loop 写的都还ok,没有什么大错误。你应该看看你的main 和别的function。再check一下你pass in 的 variable。 如果你的variable非常大那也有可能matlab 速度跟不上。 但一般来说超过1分钟还没停就代表有问题了。

matlab 求解时总是BUSY什么意思
busy表示它正在计算。没有出现循环超过预订次数的话,说明是你程序复杂了。可以在中间设一些不加分号的语句查看运行到哪了。

下面的matlab程序为什么跑了很久还不出结果??求大神指教!!
检查你的程序是不是一个死循环,如果不是死循环,看看你的matlab 左下角是不是有显示BUSY,有显示BUSY 表示程序正在运行,有的程序是要运行很久的,有的神经算法要做几个小时之久。

MATLAB如何退出死循环
1、首先先自己编一段死循环的程序.2、当出现死循环的时候,会发现左下角出现了一个busy,表示程序一直在运行.3、第一种方法就是可以同时按ctrl+c键直接跳出死循环.4、第二种方法最简单粗暴,直接关闭软件就行了.5、第三种方法跟第二种类似,就是强制退出,ctrl+alt+. 进入任务管理器,选择上然后结束...

matlab一直都是busy 下面是程序
应该是积不出啊 所以 一直在找 当然busy 不要太依赖符号计算 找v与z关系 还是循环一个z对应一个v 作图

matlab一直在busy中
Ctrl+C不能说明是否为死循环。用Ctrl+C会在命令窗口显示停止的语句,你可以在该语句的位置附近寻找长时间循环的原因。你朋友运行30秒结束,有可能是他的电脑快。可以运行部分程序,并用tic和toc对比你们电脑的运行时间。

请教:如下用Matlab编的对不对,为什么计算下去一直没结果?
你确定是一直在跑?左下角有busy的字样才是一直在跑 你不会没输入n和D的值吧 还有就是你没预测一下 在什么情况下会停止运行while语句?就是什么时候条件p1<=(j1-1)\/2不成立?

matlab左下角出现busy怎么办 下面是源程序
同学,出现busy是因为matlab在运行程序,说明系统在计算,是很正常的,不必慌张,程序运行完了,busy也就消失了。看你的电脑配置以及运行时间了,这些都很正常,由此我运行一个神经网络程序,网络训练了2个小时才训练完,时间上你再等等看

在matlab中总是出现不了<<号怎么解决
你看左下角是不是一直在 busy 如果是的话,可能你的代码要计算一段时间。用Ctrl+C可以退出计算,不过有时循环得利害的话,也要等一段时间才能退出。实在没有办法,用任务管理器了。关闭进程,再启动MATLAB

相似回答