matlab GOTO(有点)

时间:2016-02-26 15:04:11

标签: matlab debugging interactive goto

我有一个很长的脚本调用许多其他脚本,这些脚本吐了很多数字。

出于调试目的,我认为如果 - 单击图片 - 编辑器转到特定行时会很有用。有谁知道这是否可行?

我以为我可以实现像

这样的东西
A=[];
figure
plot(x)

A=ginput(1)

if A~=[]
  goto(pointer,line)
end

问题是它只能在制作完图之后才能工作。当我查看最终错误的数据时,不在分析的最后。

换句话说:有没有办法通过点击数字去特定的代码行?

N.B。有关GOTO的实现,请参阅(GOTO FileExchange

2 个答案:

答案 0 :(得分:3)

尝试将opentoline函数与回调结合使用。像

这样的东西
plot(1:10); % A simple plot
set(gcf,'ButtonDownFcn',@(h,e)opentoline('YourFunctionName.m',LineNumber));

在这种情况下,当你点击图形(不是轴,或任何标签,但图中的灰色部分)时,m文件将在编辑器中打开到指定的行。

如果要以编程方式确定行号,请执行以下操作

plot(1:10)
st = dbstack;
set(gcf,'ButtonDownFcn',@(h,e)opentoline(st(1).file,st(1).line-1));

答案 1 :(得分:1)

您可以使用此undocumented function

f = figure;
uicontrol ( 'string', 'open "str2double.m" @ 200', 'callback',  @(a,b)opentoline(which('str2double.m'),200), 'position', [100 100 400 50] )

它适用于r2015a