为什么Matlab在保存并运行M文件后第一次没有触发断点?

时间:2012-08-29 10:39:51

标签: matlab

我注意到Matlab中有一种奇怪而烦人的行为。可能我只是做错了,但当我对M文件进行一些更改,保存并重新运行时,我的断点不会按预期触发。如果我第二次执行M文件,则会按预期触发断点。为什么这种奇怪的行为以及如何解决?

修改

根据要求提供我的Matlab代码片段:

function readCommutingContextData(filename)
fid = fopen(filename);

bufferSize = 5;

format long g
nLines = 0;
tline = fgetl(fid);
while ischar(tline)
    nLines = nLines + 1;
    tline = fgetl(fid);
end
fclose(fid);

timestamps  = zeros(nLines,2,'uint64');
coords      = zeros(nLines,3);
features    = zeros(nLines,12);
labels      = cell(nLines,3);
sources      = cell(nLines,1);
fid = fopen(filename);
tline = fgetl(fid);
i = 1;
while ischar(tline)
    tokens = textscan(tline, '%s', 'delimiter', ',');   
    tokens = tokens{1};
    timestamp           = uint64(str2double(tokens{1}));
    gpsTime             = uint64(str2double(tokens{2}));
    latitude            = str2double(tokens{3});
    longitude           = str2double(tokens{4});
    accuracy            = str2double(tokens{5});
    source              = tokens{6};

    ...
end
fclose(fid);

3 个答案:

答案 0 :(得分:1)

我观察到在R2011a和R2012a中编辑文件之前设置的断点的类似行为。我相信这是一个Matlab错误。

我发现的解决方法是在编辑和保存文件后重置(清除/设置)至少一个断点。

答案 1 :(得分:0)

当我从“命令窗口”运行代码时遇到了同样的问题,并且断点没有工作。之后我冲浪了,其他人引导我,我在我的调用语法前面使用了“清除所有”。轻松删除“所有”并再次运行您的代码,所有断点都可以正常工作。

答案 2 :(得分:0)

它非常容易处理转到断点标签,然后点击那里的箭头,首先点击清除全部而不是点击设置并清除,最后选择停止错误选项....你的断点开始运作良好