有什么方法可以检查句柄是否存在?所以类似于:如果我之前没有声明句柄,我想要 0 作为输出,否则为 1。
我尝试了 ishandle、isvalid、isfield、isempty 但它们都不适用于“不存在的字段”,因此如果我没有声明句柄,我会收到错误。 “引用不存在的字段‘SP’。”
如果我尝试“存在名称”函数,它只适用于变量,但不适用于句柄
所以:
handle.a=figure;
exist handle.a;
返回0
同时
handle.a=figure;
a=handle.a;
exist a
返回 1
但我正在寻找:
handle.a=figure;
exist handle.a
ans=1
%without setting the handle:
exist handle.a
ans=0
我希望我的帖子是可以理解的。 感谢您的帮助!克劳斯
最佳答案
让我重新表述一下:您正在为结构的字段分配句柄。现在您想要测试该字段中是否有有效句柄,并防止一切可能错误的情况:(1) 没有字段,(2) 它是空的,(3) 它是一个数组而不是标量,(4 ) 它不是一个句柄,(5) 它不是一个有效的句柄。
因此:
tf = isfield(handle,'a') && isscalar(handle.a) && ishandle(handle.a);
当然,如果您知道某些情况永远不会发生,则可以放弃相应的测试。
关于Matlab - 如何检查句柄是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30529849/