在MATLAB中,定义函数大致有3种方法:非注释的
知道函数定义的位置在几种情况下可能会很有帮助,例如当某个我们无法控制的函数出现重大变化时,我们希望尝试回滚到旧版本以期望让我们的代码再次工作;或者在尝试反向工程某些未公开算法时。
如果是这样的话,假设在我的代码执行期间调用了一个共享库中的函数,那么我该如何找到包含它的特定文件(DLL)呢?
.m
文件、.p
文件和编译代码(例如DLL、MEX)。知道函数定义的位置在几种情况下可能会很有帮助,例如当某个我们无法控制的函数出现重大变化时,我们希望尝试回滚到旧版本以期望让我们的代码再次工作;或者在尝试反向工程某些未公开算法时。
which
函数通常非常擅长识别函数定义及其位置(对于.m
、.p
和MEX均适用),但在共享库函数方面却不太有用,最多只能指向一个仅包含注释的文档文件。>> which _mcheck
built-in (undocumented)
>> which svd
built-in (D:\Program Files\MATLAB\R2019a\toolbox\matlab\matfun\svd)
如果是这样的话,假设在我的代码执行期间调用了一个共享库中的函数,那么我该如何找到包含它的特定文件(DLL)呢?