我有一个很长的脚本调用许多其他脚本,这些脚本吐了很多数字。
出于调试目的,我认为如果 - 单击图片 - 编辑器转到特定行时会很有用。有谁知道这是否可行?
我以为我可以实现像
这样的东西A=[];
figure
plot(x)
A=ginput(1)
if A~=[]
goto(pointer,line)
end
问题是它只能在制作完图之后才能工作。当我查看最终错误的数据时,不在分析的最后。
换句话说:有没有办法通过点击数字去特定的代码行?
N.B。有关GOTO的实现,请参阅(GOTO FileExchange)
答案 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