Problem with properties in App Designer.

Hello. I need help with "properties" in App Designer. I have some trouble with realization the method of symmetrical components.
properties (Access = public)
a = -.5 + sqrt (3) / 2 * j; % Phase-shift operator
     F = [1 a^2 a; 1 a a^2; 1 1 1]; % Matrix Fortescue
end
Message: "Invalid default value for property 'F' in class 'App1': Undefined function or variable 'a'."
If I replace "a" with "app.a" in the Matrix Fortescue.
Message: "Invalid default value for property 'F' in class 'App1': Undefined variable "app" or class "app.a"."

Answers (1)

Since you're probably not going to want a and F to change based on the state of your app, make them Constant properties, properties with the Constant attribute.

6 Comments

properties (Constant)
a = 1;
b = a+1;
end
function ButtonPushed(app, event)
app.EditField.Value = app.EditField.Value + app.b;
end
Message: Invalid default value for property 'b' in class 'App1': Undefined function or variable 'a'.
You want to define the property app.b in terms of the property app.a, not a variable a. In the first example on the documentation page to which I directed you, note how property NamedConst.D is defined in terms of property NamedConst.R and not on a variable named R.
1 example: Invalid default value for property 'F' in class 'App1': Undefined variable "app" or class "app.a".
properties (Access = public)
a = -.5 + sqrt (3) / 2 * j; % Phase-shift operator
F = [1 app.a^2 app.a; 1 app.a app.a^2; 1 1 1]; % Matrix Fortescue
end
2 examle: Just replace 'app.a' with value 'a' in 'F'.
properties (Access = public)
a = -.5 + sqrt (3) / 2 * j;
F = [1 (-.5 + sqrt (3) / 2 * j)^2 -.5 + sqrt (3) / 2 * j; 1 -.5 + sqrt (3) / 2 * j (-.5 + sqrt (3) / 2 * j)^2; 1 1 1];
end
3 example: Add startup function.
properties (Access = public)
a = -.5 + sqrt (3) / 2 * j;
F;
end
...
function startupFcn(app)
app.F = [1 app.a^2 app.a; 1 app.a app.a^2; 1 1 1];
end
2 and 3 example work true. But how define property on other properties in the first case? And what difference between 3 and 1 case?
The name of your app class is App1? Then you need App1.a. In general if your app class was named CLASSNAME, you would use CLASSNAME.a.
New
New on 29 Jul 2017
Edited: New on 29 Jul 2017
No, prefix does not depend on the name of the application or classname.
That is correct IF you're referring to a property of an instance of the class. A Constant property can be accessed even if you don't have an instance of the class, and the way you do that is by using the name of the class.

Sign in to comment.

Categories

Find more on Develop Apps Using App Designer in Help Center and File Exchange

Asked:

New
on 28 Jul 2017

Commented:

on 29 Jul 2017

Community Treasure Hunt

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

Start Hunting!