How can I check existence of a variable in matlab app designer?

31 次查看(过去 30 天)
I'm creating an app designer UI. Every time I run below code in app designer, the answer is zero:
if true
% code
% Button pushed function: PreviewButton
function PreviewButtonPushed(app, event)
app.z = videoinput('winvideo',1,'RGB24_960x720');
app.x = getsnapshot(app.z);
a = exist('app.x','var');
end
On the other hand while I run this code in editor the is true:
if true
% code
z = videoinput('winvideo',1,'RGB24_960x720');
x = getsnapshot(z);
a = exist('x','var')
end
How shoud I use existence function?

回答(2 个)

Steven Lord
Steven Lord 2018-4-10
The expression "app.x" is not a variable name. In this context it is an expression referring to the property x of an object stored in the variable app. [There are other potential meanings, but that's the one that's relevant here.]
If you want to check if the object stored in the variable app has a property x, use isprop.
isprop(app, 'x')
If you want to check if the property app.x exists and is non-empty:
isprop(app, 'x') && ~isempty(app.x)
If you know that the object app must have a property x (because it appears in the class definition file rather than being a dynamic property added using addprop on a class that subclasses dynamicprops) you can omit the first part of that test.
~isempty(app.x)
  2 个评论
MC
MC 2018-4-10
Hi Steven,
Many thanks for your prompt and full explanation. ~isempty() works perfectly for me.
This is my first time using appdesigner (only used guide previously).
Off to read up on properties now...
Best regards, Mark.
reaujahn
reaujahn 2022-1-12
Hello Steven,
I have a similar question regarding ~isempty().
Would you mind having a look? I appreciate it.

请先登录,再进行评论。


MC
MC 2018-4-10
编辑:MC 2018-4-10
I have the same problem.
I can evaluate the variable I am looking for while in debug mode, but 'exist' returns 0 nonetheless.
Edit: I got around it by using
try
app.x;
% continue ...
catch
% if x doesn't exist
return
end

类别

Help CenterFile Exchange 中查找有关 Develop Apps Using App Designer 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by