matlab死循环,问题如图中所示,求救啊,问题解决之后还能加分

供稿:hz-xin.com     日期:2024-05-05
求助,Matlab代码运行出现死循环

B = PX(P);
while B(1)+B(2)<=1
while k1==0|k2==0
for i1=1:n
end
for j1=1:a-1
end
while i2<=n&i2~=i1
end
while j2<=a-1&j2~=j1
end
end
while E>B(k)&k-1<n
end
while k<=n
end
end

能向量化就向量化,如果不好处理:
1.尽量把循环次数少的嵌套放在外面
2.将矩阵预先定义

1、MATLAB中,for循环是基于索引的,逻辑上不可能出现死循环(当然,如果循环次数太多,导致执行时间超出所能忍受的可能性是存在的);而while循环是基于判断的,如果不满足结束循环的条件,就会一直执行下去。

 

2、题主的程序包含多重嵌套循环,大致结构如下(仅写出循环的结构,其他条件判断相关的忽略):

B = PX(P);
while B(1)+B(2)<=1
    while k1==0|k2==0
        for i1=1:n
        end
        for j1=1:a-1
        end
        while i2<=n&i2~=i1
        end
        while j2<=a-1&j2~=j1
        end
    end
    while E>B(k)&k-1<n
    end
    while k<=n
    end
end

这里面的两个for循环都不可能导致死循环,第3个以及最后两个while循环也不可能导致死循环(因其循环体中包含对i2、k的更新,必然会满足结束条件),存在死循环可能的,就是下面这3个嵌套的while循环:

while B(1)+B(2)<=1
    while k1==0|k2==0
        while j2<=a-1&j2~=j1
        end
    end
end

 

3、到底是什么原因导致了死循环,仅通过现在的静态代码分析是不可能得到结论的。合理的做法是对程序运行过程进行跟踪,比如,可以从最外一层while循环入手,使其每一次循环都输出B(1)+B(2)的值,看是否循环体一直在执行:如果在执行,查看B(1)+B(2)的值是否变化(不变的话找原因);如果长时间无输出,说明下一层循环存在问题,那么就参照类似的做法继续查。

 

4、上面说了查问题的思路,如果题主需要我帮助分析,请把代码发给我(可通过网盘或私信,注意务必包括子函数PX)。



程序发我!。。。。。。。。。。。。。。。。。。。。。。

根据如图中所发生的化学反应现象及化学反应原理进行归纳并回答下列问题...
答:(1)木炭、磷、铁和氧气的反应是有许多共同点,如反应条件都是点燃;都与氧气发生反应,都属于氧化反应;都属于化合反应;生成物都是氧化物;反应都会放出热量等.(2)三个反应也有某些不同点,图中一个反应与另两个...

如图是生物圈中气体循环简图,请你据图分析回答下列问题.(1)填出图...
答:消耗着大气中的二氧化碳,产生的氧又以气体形式进入大气,这样就使的生物圈中的空气中氧气和二氧化碳的浓度处于相对的平衡状态,简称碳氧平衡.故答案为:(1)光合作用; 呼吸作用; 呼吸作用; 微生物的分解作用; ...

请根据如图回答下列问题:(1)请指出图中所标结构的名称:①是___,②...
答:(1)图中①肱二头肌;②肱三头肌;(2)伸肘时,肱三头肌收缩,肱二头肌舒张. (3)屈肘时,肱二头肌收缩,肱三头肌舒张.(4)双臂自然下垂时,肱二头肌和肱三头肌都舒张.(5)当双臂提重物时候,肱二头...

如图是生物能量转化图解,请回答有关问题:(1)写出图中字母所表示的生理过...
答:(1)据图分析可知,A为化能合成作用,B为光合作用,C为有氧呼吸,D为无氧呼吸.(2)若某生物既可以进行无氧呼吸过程,又可以进行有氧呼吸过程,由于有氧时会抑制无氧呼吸过程的进行,则要获得较多的酒精必须创造无氧环境...

(2011?道里区一模)如图为实验室制取氧气的发生装置图,请根据要求...
答:(1)根据实验室制取氧气的方法,用高锰酸钾和氯酸钾和二氧化锰混合物制取氧气时需要加热,加热分解高锰酸钾制氧气,需在试管口放一小团棉花;因此图中所用的药品为:KClO3和MnO2;发生反应的化学方程式为:2KClO3MnO2.△2...

如图所示,△ABC的边长都是24cm,用图中所的线段把这个三角形分割成面积相...
答:因为 Sabd=Sabc/4, 所以 AD=AC/4=24/4=6 cm 所以 CD=AC-AD=24-6=18 cm 所以 CF=CD/2=18/2=9 cm 因为 Sbde=Sbcd/3,所以 BE=BC/3=24/3=8 cm 所以 CE=BC-BE=24-8=16 cm ...

...请根据题中所给的条件,解答下列问题:(1)如图1,若∠BAD=60°,_百度...
答:∴∠BAE=∠BAD-∠EAD=40°,∵AE平分∠BAC,∴∠BAC=2∠BAE=80°.∵AD⊥BC,∠BAD=62°,∴∠B=28°,∴∠C=180°-∠BAC-∠B°=72°;(3)∵(1)中∠EAD=15°,∠C-∠B=60°-30°=30°,发现∠C...

(2013?平阳县模拟)如图所示是液态二氧化碳灭火器,请回答下列问题.(1...
答:(1)金属材料包括金属单质和合金;所以铜、铁属于金属单质、钢属于铁的合金都属于金属材料;塑料、合成纤维、合成橡胶都属于有机材料;(2)二氧化碳既不能燃烧也不支持燃烧,且密度比空气大,所以覆盖在可燃物表面隔绝了空气...

如图所示装置是碳酸钠和碳酸氢钠的热稳定性的比较试验,回答下列问题...
答:(1)试管A和B中盛放的是澄清石灰水,用于检验二氧化碳气体,故答案为:澄清石灰水;(2)碳酸氢钠在小试管D,Na2CO3在大使管C,大试管直接加热,稳定较高,如温度较高的不分解,而加热温度较低的物质分解,可判断稳定强弱...

如图,已知一个正方体的六个面上分别写着六个连续的整数,且两个相对面...
答:因为16---20有5个数;这6个数又是连续自然数;所以,最大只能是21,最小只能是15;(取最大数21)有:19+18=20+17=21+16;16+17+18+19+20+21=111;(取最小数15):15+16+...+20=105,每对数=105÷3=...