matlab - 获取在 Matlab 代码中执行的实际行

标签 matlab

这个问题困扰了我一段时间,但我找不到答案。

我目前正在与一位同事合作编写一段相当长的 Matlab 代码。我们每个人都在代码的不同部分工作,而不会相互干扰。为了更好地定位自己的代码并遵循程序的流程,我放置了一些 disp() 以便我知道代码何时到达某行。

例如:

% code
    disp('You have reached line 1000')
% code...

然而,当我或我的同事在 disp() 命令上方添加/删除/修改代码行时,这可能会很麻烦,以至于我在 disp() 中手动输入的行不再准确。

我的问题:有没有办法打印程序到达的代码中的实际行号?这可能是一个非常幼稚的问题,但我想知道这是否可能。

最佳答案

您可以检查数据库堆栈。这是带有示例的文档,具体取决于您要打印的内容:http://www.mathworks.co.uk/help/matlab/ref/dbstack.html

快速示例,您可以将其放入文件 debug_point.m:

%// Tested on Octave only, Matlab might be slightly different
function debug_point()
    d = dbstack(1);
    d = d(1);
    fprintf('Reached file %s, function="%s", line %i\n', d.file, d.name, d.line)
end

然后就可以调用这个函数了。您只需更改此功能即可轻松关闭所有打印。

关于matlab - 获取在 Matlab 代码中执行的实际行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25430757/

相关文章:

matlab - 在 MATLAB 中具有灵活的有序/无序和标记/未标记输入列表的函数

matlab - Simulink 项目依赖管理和依赖解析

matlab - 如何绘制向量中所有点之间的线?

matlab - 当我有相应的 x 和 y 坐标时,在图形上插入 2 个图像

image - 无法使用与灰度图像矩阵的乘法

matlab - 过度分水岭图像

image - 在 MATLAB 中使用霍夫曼编码进行灰度图像压缩

matlab - 如何在 MATLAB 中重命名结构体数组中的字段?

image - 如何在 Matlab 中显示图像的红色 channel ?

matlab - 如何在MATLAB中获取特定目录下的所有文件?