Assign values to a structure using App designer
显示 更早的评论
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!
回答(2 个)
Dennis
2019-4-17
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.
fig=uifigure;
f(1)=uieditfield(fig,'position',[100 50 80 40],'value','1');
f(2)=uieditfield(fig,'numeric','position',[100 90 80 40],'value',2);
s.theta=f(1).Value;
s.lambda=f(2).Value;
f(1).Value+5 %does not throw an error!
str2double(f(1).Value)+5
4 个评论
ZC Song
2019-4-17
Dennis
2019-4-18
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
2019-4-18
ZC Song
2019-4-19
mansour torabi
2021-10-1
Simply just use str2double function:
BC.theta_res = str2double(app.theta_resEditField_3.Value);
类别
在 帮助中心 和 File Exchange 中查找有关 App Building 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



