MATLAB Answers

Access .mlapp data in .m file after app closes

9 views (last 30 days)
Jonathan Avesar
Jonathan Avesar on 5 Jun 2020
Commented: Tommy on 8 Jun 2020 at 18:38
I have a script (.m) that calls a app (.mlapp) that I created using AppDesigner. The app is designed to collect user input. After the user enters the values, he/she clicks an OK button which propmpts the app to close. After the app closes, I want to access the user data from the app in the scipt (.m) and perform operations with the data. How do I do this?
I tried creating "public" properties and storing the values in the said created public properties, but I cant access those properties after the app is closed because the handle is deleted when the app deletes. I understand that it is possible to transfer data before the app deletes but the problem with that is that I don't know when the user is finished entering the data until the app is deleted.
My code in the script (.m) looks something like this:
H = myApp;
%Here I need to access the data from myApp


Sign in to comment.

Accepted Answer

Tommy on 5 Jun 2020
Rather than waitfor(H), which waits until H is deleted, how about waitfor(H,propname,propvalue), where propname is some property of H that gets set to propvalue once the user is finished entering data? And delete your app after you've grabbed the relevant properties, rather than from within the app.


Jonathan Avesar
Jonathan Avesar on 8 Jun 2020 at 17:56
Hi Tommy,
Thank you so much, that method worked! I ended up creating a public variable within the app called
app.Finished = false; %Status of the app, True if user finished entering data
and set it to true when the user clicks on the OK button. I then added this structure in my script (.m) file:
%Wait for a positive finished state
%Collect app data
attribute = H.attribute.Value;
%Close the app
And that worked perfectly!
**Hint, do not use a while loop in the main script. I tried that first before using this strategy and the main script was not capable of reading in new app attributes for exiting the loop while in the loop (e.g. while ~H.Finished)
Tommy on 8 Jun 2020 at 18:38
Awesome! I am super glad that worked, this was a bit of a fun one. Happy to help as always!

Sign in to comment.

More Answers (0)




Translated by