如何在Matlab中进行特定迭代后调试程序

时间:2016-01-12 04:13:29

标签: matlab loops debugging iteration

我需要你的帮助。我想在特定的迭代后调试一个matlab代码。 假设以下是代码:

**im=imread('C:\lena.tif');   
[m n]=size(im); 

for i=1:2:m-1  
    for j=1:2:n-1  
        enter into a function  
        ..................   
        ..................**

假设当i = 505且j = 460时,程序将进入调试模式,然后我将使用STEP IN调试其余代码(F11)

请帮帮我。请拜托...... 非常感谢提前。

此致 - 杰西

1 个答案:

答案 0 :(得分:3)

正如其他人在评论中所述,您可以使用conditional breakpoints。重要的是要指出,这可以通过MATLAB编辑器或以编程方式交互式地完成

dbstop in FUNCTION_NAME at LINE_NUMBER if CONDITION

此外,您还可以在代码中组合条件并使用keyboard以便能够与特定位置的代码进行交互。

for i=1:2:m-1  
    for j=1:2:n-1
         if i == 505 && j == 460
             keyboard % Now you can step through the "do stuff" below
         end

         % do stuff
    end
end

作为旁注,一个非常有用的调试技巧是在抛出任何错误时实际设置dbstop

dbstop if error

这将在发生任何故障时设置断点。然后,您可以使用所有编辑器调试工具或调试命令(dbupdbdowndbstep等)来查看真正的问题所在并查看当前状态。< / p>