User input folder path in App Designer with multiple tables

6 visualizaciones (últimos 30 días)
Emily
Emily el 23 de Jun. de 2022
Editada: Jon el 24 de Jun. de 2022
First time using this feature. I'm trying to have the user input their folder path and will display the calculation based on it.
I have the calculation code on a seperate file that is called when the calculate button is pressed.
function calculation(folderpath)
But other than that I'm not sure how to have
  1. what the user input = folderpath so the function can be run
  2. how to display the data in the correct table location
  2 comentarios
Geoff Hayes
Geoff Hayes el 23 de Jun. de 2022
@Emily - how does the user enter the folder path? Should they use uigetdir to populate that path text control?
Emily
Emily el 23 de Jun. de 2022
Editada: Emily el 23 de Jun. de 2022
They just copy/paste the folder path directly into the text box.

Iniciar sesión para comentar.

Respuestas (1)

Jon
Jon el 23 de Jun. de 2022
You need to define a value changed callback function for each Edit Field, something like this for the first one, and then similar for the second one, except change the names appropriately, e.g. app.EditField -> app.EditField2
, app.UITable.Data ->app.UITable2.Data
% Callbacks that handle component events
methods (Access = private)
% Value changed function: EditField
function EditFieldValueChanged(app, event)
% get the folder path that the user entered
folderpath = app.EditField.Value;
% calculate the data using the data in this folder
data = calculation(folderpath)
% display the data in the appropriate table
app.UITable.Data = data
end
  3 comentarios
Emily
Emily el 23 de Jun. de 2022
Hi, I tried out this method and it's giving me some errors.
Error using calculation
Too many output arguments
Error sandbox/ButtonPushed
data=calculation(folderpath);
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback
Error while evaluating Button PrivateButtonPushedFcn
I tested out the calculation code again and it seems to be working and printing the cell arrays properly.
Jon
Jon el 24 de Jun. de 2022
Editada: Jon el 24 de Jun. de 2022
The error message is telling you that your function, calculation, is not returning any output arguments, but you try to assign a value to the output, in your line
data=calculation(folderpath);
Please check that in your code for calculation that the first line assigns an output argument to the result of the calculation, that is the for example:
function outData = calculation(folderpath)
inData = readmatrix(fullfile(folderpath,'myData.csv'))
outData = inData*2; % just for example
end
If that doesn't fix your problem, please attach your code along with any necessary files to run it and I will see what is going on.

Iniciar sesión para comentar.

Categorías

Más información sobre Tables en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by