有没有办法检查手柄是否存在?所以类似:如果我之前没有声明一个句柄,我想要一个0作为输出,否则一个。
我尝试过ishandle,isvalid,isfield,isempty但是他们都没有在一个不存在的领域工作#34;所以如果我没有声明句柄,我会收到一个错误.. "参考不存在的字段' SP'。"
如果我尝试"存在名称"函数它只适用于变量但不适用于句柄
所以:
handle.a=figure;
a=handle.a;
exist a
返回0
,而
handle.a=figure;
exist handle.a
返回1
但我正在寻找:
%without setting the handle:
exist handle.a
ANS = 1
{{1}}
ANS = 0
我希望我的帖子是可以理解的。 谢谢您的帮助!克劳斯
答案 0 :(得分:2)
让我重新说一下:您正在为结构的字段分配句柄。现在你想测试字段中是否有一个有效的句柄,并防止可能出错的一切:(1)没有字段,(2)它是空的,(3)它是一个数组而不是一个标量,(4) )它不是一个句柄,(5)它不是一个有效的句柄。
因此:
tf = isfield(handle,'a') && isscalar(handle.a) && ishandle(handle.a);
当然,如果您知道某些条件永远不会发生,您可以放弃相应的测试。