Matlab - 如何检查句柄是否存在

标签 matlab

有什么方法可以检查句柄是否存在?所以类似于:如果我之前没有声明句柄,我想要 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/

相关文章:

matlab - 在Matlab中防止 “MATLAB:unassignedOutputs”

matlab - 在二元尺度上创建高斯小波矩阵

python - merge 期间在 Git 中集成缩进和内容更改 : Best practices?

matlab - 使用 MATLAB 保存图像

python - 数组除法——从 MATLAB 到 Python 的翻译

c++ - MATLAB MEX C++ 文件编译错误 g++ command not found

python - 使用 for 循环调整 etopo 中的网格数据大小

matlab - Matlab 中控制随机函数阶数的种子

linux - 如何在Windows下使用Matlab嵌入式编码器为LINUX编译?

MATLAB:获取文件的最后修改时间