追踪变量matlab,如何在MATLAB中跟踪函数调用?

我想要一种方法来跟踪在特定工作空间变量上运行的所有函数调用 – 例如,将通过各种信号处理函数转换的声音波形.

一个繁琐而脆弱的方法是这样做:

>> cfg = [];

>> curr_call = 'data_out = my_function(cfg,data_in);';

>> eval(curr_call);

>> data_out.cfg.history = cat(1,data_out.cfg.history,{curr_call});

更好的是以下内容:

>> cfg = [];

>> data_out = my_function(cfg,data_in);

>> data_out.cfg.history

'data_out = my_function(cfg,data_in);'

编辑澄清:换句话说,这个变量有一个字段cfg.history,它跟踪所有已在其上运行的历史启用函数(理想情况下使用参数).无论函数调用源自何处,都应更新历史字段:上面的示例来自命令行,但是从单元格模式或脚本中进行的调用也应附加到历史记录中.显然,我可以在上面的示例中编辑my_function(),以便它可以修改历史记录字段.

请注意以下讨论:执行此操作的动机是将历史记录“附加”到相关数据中,而不是说,在单独的日志文件中,然后需要以某种方式将数据打包.

可以这样做吗?

最佳答案 您可以使用以下代码访问完整的会话历史记录:

import com.mathworks.mlservices.MLCommandHistoryServices

history=MLCommandHistoryServices.getSessionHistory;

要获得您想要的内容,请使用以下代码:

import com.mathworks.mlservices.MLCommandHistoryServices;

startcounter=numel(MLCommandHistoryServices.getSessionHistory);

disp('mydummycommand');

disp('anotherdummycommand');

history=MLCommandHistoryServices.getSessionHistory;

commands=cell(history(startcounter-2:end-1));

请注意,这些功能没有记录.它使用命令历史记录,该历史记录通常位于matlab的右下角.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值