MATLAB Answers

Assign values to a structure using App designer

42 views (last 30 days)
ZC Song
ZC Song on 17 Apr 2019
Commented: ZC Song on 19 Apr 2019
Hi, I want to ask a simple question that bothered me a lot.
When I assign values to a struct, like below
BC.theta_res = app.theta_resEditField_3.Value;
BC.theta_sat = app.theta_satEditField_3.Value;
BC.K_sat = app.K_satEditField_3.Value;
BC.lambda = app.lambdaEditField.Value;
BC.h_s = app.h_sEditField.Value;
why they store values as characters not numbers? Each item has a single quote mark on it.
My input in the app is:
How to make it to a number?
thanks a lot!


Sign in to comment.

Answers (1)

Dennis on 17 Apr 2019
There are two different types of edit fields in appdesigner (numeric and text). In the picture you show are only text edit fields (those are usually left aligned, while numeric fields are right aligned). The value of text edit fields is a string and should be converted to a number before doing calculations with it.
f(1)=uieditfield(fig,'position',[100 50 80 40],'value','1');
f(2)=uieditfield(fig,'numeric','position',[100 90 80 40],'value',2);
f(1).Value+5 %does not throw an error!


Show 1 older comment
Dennis on 18 Apr 2019
I am pretty sure that the edit fields in your previous screenshot are not numeric.
What do you get as result when you run this:
BC.theta_res = app.theta_resEditField_3.Type;
BC.theta_sat = app.theta_satEditField_3.Type;
BC.K_sat = app.K_satEditField_3.Type;
BC.lambda = app.lambdaEditField.Type;
BC.h_s = app.h_sEditField.Type;
ZC Song
ZC Song on 18 Apr 2019
I deleted those edit fields and reset as below:
BC.K_sat = app.K_satEditField.Value;
BC.lambda = app.lambdaEditField.Value;
BC.hs = app.hsEditField.Value;
BC.theta_res = app.theta_resEditField.Value;
BC.theta_sat = app.theta_satEditField.Value;
and this time it works:
I feel confused about what the difference? why the previous one didn't work.
ZC Song
ZC Song on 19 Apr 2019
Hi Dennis,
Thank you very much for your attention, I retyped all fields and now they are runing fine!

Sign in to comment.

Translated by