How to upload a CSV file using a button on App Designer and using its content in another function.

34 vues (au cours des 30 derniers jours)
I want to create an upload button and a plot button. The upload button will open a file browser and the user should be able choose the desired csv file. I want to read this csv as a table. Next using the plot button, I want to plot the values form that csv and analyze it further more.

Réponse acceptée

Jon
Jon le 28 Juin 2022
Modifié(e) : Jon le 28 Juin 2022
I have attached a very rough example to get you started along with a data file to try it with.
Here are the main ideas (using App Designer):
  1. Drag and drop the buttons and an axes onto the app
  2. Define a property, e.g. app.dataTable, where the table of data that is to be read in is stored for use by callbacks
  3. Define ButtonPushed callback functions for the upload and plot buttons.
  4. The callback function for the upload uses uigetfile to let the user browse for the file, and reads the data into app.dataTable
  5. The callback function for the plot function uses the data stored in the app.dataTable property and plots it to the axes e.g. app.UIAxes, that is inside of your app. So use plot(app.UIAxes,x,y...) rather than plot(x,y). Otherwise a new figure window will open up outside of your app, and I don't think this is what you want.
The attached example is very basic, you would have to format things nicely, label your plot, make sure the user can't plot without first selecting a file etc.
  4 commentaires
R
R le 30 Juin 2022
Modifié(e) : R le 30 Juin 2022
Thank you so much! Worked so well and made my code cleaner !!
To access variables from other functions, would app.function.variable work as well?
Jon
Jon le 30 Juin 2022
I'm not quite sure what you mean by "app.function.variable". In general the approach should be that if there is data that is shared between the callbacks, as in the above where one callback gets the filename, and reads in the data, and the other callback plots the data, then the common, shared data is stored as an app property, so in the above case app.dataTable

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Migrate GUIDE Apps dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by