gpt4 book ai didi

matlab - 是否有内置测试字符串(或句柄)是否引用脚本?

转载 作者:太空宇宙 更新时间:2023-11-03 19:24:19 25 4
gpt4 key购买 nike

下面的函数是一个自创的 hack,用于检测其参数是否引用脚本

function yesno = is_script(string_or_handle)
try
nargin(string_or_handle);
yesno = false;
catch me
if ~strcmp(me.identifier, 'MATLAB:nargin:isScript')
rethrow(me);
end
yesno = true;
end
end

这样的 hack 很难维护。 (例如,每当 MathWorks 决定更改 nargin 在获取脚本作为输入时抛出的异常标识符类时,这一个就会中断。)

MATLAB 是否已经具有执行此操作的内置函数?

最佳答案

您可以通过仅针对函数句柄运行 try-catch block 来修改您的 hack,以减少对 future “破坏”的修剪。在这种情况下,您会知道 if 如果抛出错误,则输入句柄是一个脚本(无需调查错误详细信息;因此对异常标识符不敏感)。

function yesno = is_script(string_or_handle)
yesno = false;
if isa(string_or_handle,'function_handle') || ...
exist(string_or_handle,'file') == 2
try
nargin(string_or_handle);
catch me
yesno = true;
end
end
end

关于matlab - 是否有内置测试字符串(或句柄)是否引用脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35096324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com