我需要你的帮助。我想在特定的迭代后调试一个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)
请帮帮我。请拜托...... 非常感谢提前。
此致 - 杰西
答案 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
这将在发生任何故障时设置断点。然后,您可以使用所有编辑器调试工具或调试命令(dbup
,dbdown
,dbstep
等)来查看真正的问题所在并查看当前状态。< / p>