MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   如何在MATLAB中创建“空”匿名函数? (https://www.labfans.com/bbs/showthread.php?t=22990)

poster 2019-12-10 16:49

如何在MATLAB中创建“空”匿名函数?
 
在MATLAB中进行调试时,我使用匿名函数进行诊断打印。例如,

debug_disp = @(str) disp(str); debug_disp('Something is up.') ... debug_disp = @(str) disp([]); % diagnostics are now hidden 用disp([])当作“小东西”对我来说有点脏。有更好的选择吗?显而易见的(?)方法不起作用:

debug_disp = @(str) ; 我认为,这可能对其他功能语言应用程序有用,而不仅仅是诊断打印。


回答:
您可以在代码库中添加常规的虚无功能。

function NOP(varargin) %NOP Do nothing % % NOP( ... ) % % A do-nothing function for use as a placeholder when working with callbacks % or function handles. % Intentionally does nothing 然后,您可以在不希望出现任何操作的地方使用函数句柄,而不是匿名函数。

debug_disp = @NOP; 现在,它有点自我记录,明确表明您打算什么也不做,而不是抓住了disp()的错误输入。在源代码中将显而易见,此外,当您在调试器中并检查包含函数句柄的变量时,它将显示为“ @NOP”,它可能比匿名句柄更具可读性。通过查看NOP的呼叫者列表,您可以在“概要文件报告”输出中获得所有已完成操作的列表。

您还可以使用Matlab的内置@deal,在退化的情况下,它什么也不做,什么也不返回。



[url=https://stackoverflow.com/questions/1904972]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 01:04

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.