Setting Data in a GUI Table

Hi,
I've created a GUI in Matlab with 4 pushbuttons and a table. I want to set initial values in the table when the GUI opens, and then change the values in the table when one of the buttons is pressed.
I'm new to this, what do I need to do to set the data in my uiTable1? I feel like this should be easier then I'm making it. I don't want the user to be able to change the cells of the table, I just want to change the cells of the results from a code that I will run as a display.
Thanks,

5 comentarios

Patrick
Patrick el 5 de Mzo. de 2015
I got the set command to work. Now I'm having trouble figuring out how to change the data in the table only 2 cells at a time. For example the table is 2x10. When the user clicks a button, I only want data in cells (1,1) and (2,1). Then when they push the button a second time, I want to read the table values that are already there but then add in cells (2,1) and (2,2). Do you have any suggestions for this? I'm having trouble figuring out which cells already have data using the getappdata command.
Brendan Hamm
Brendan Hamm el 5 de Mzo. de 2015
Get the old values using the get command, concatenate them together and then set them again:
newVals = randn(1,2);
oldVals = get(t,'Data');
newVals = [oldVals ; newVals];
set(t,'Data',newVals);
Patrick
Patrick el 5 de Mzo. de 2015
Editada: Patrick el 5 de Mzo. de 2015
This works, great, however I want the first column to be replaced, but then every column after that to concatenate. How can I do this?
Is there a way to set a limit on the concatentation? For example once there are 10 columns I want the function to not allow any more concatenations?
And once the table is full, is there a way to sum all of the values in each column and return a result in a popup window?
Patrick
Patrick el 5 de Mzo. de 2015
I figured out my first problem with how to replace the first value. Now I need to figure out how to limit the number of concatentations and then return a popup window at the end
Brendan Hamm
Brendan Hamm el 5 de Mzo. de 2015
Sure just place this in an if statement (checking the size of the 'Data'), make a new figure, and add a uitable or annotation('textbox',...) with the data.

Iniciar sesión para comentar.

 Respuesta aceptada

Brendan Hamm
Brendan Hamm el 5 de Mzo. de 2015

8 votos

Use the set command:
f = figure;
d = randn(10,3); % Make some random data to add
t = uitable(f);
set(t,'Data',d); % Use the set command to change the uitable properties.
set(t,'ColumnName',{'a';'b';'c'})

3 comentarios

Saeid
Saeid el 11 de Dic. de 2016
Hi Brendan, I was just looking for this answer and your suggestion helped me a lot, thanks!
Brendan Hamm
Brendan Hamm el 11 de Dic. de 2016
Glad to hear this helped out. I'm a bit surprised to see how many views this one answer has ... must be a popular topic.
abdulghani aldhaibani
abdulghani aldhaibani el 26 de Abr. de 2018
thank you ... Brendan Hamm

Iniciar sesión para comentar.

Más respuestas (1)

Yingcai
Yingcai el 1 de Dic. de 2016
Editada: Yingcai el 1 de Dic. de 2016

1 voto

t = handles.uitable1;
d = randn(10,3); % Make some random data to add
set(t,'Data',d); % Use the set command to change the uitable properties.
set(t,'ColumnName',{'a';'b';'c'})
%yingcai1012@hotmail.com

Categorías

Más información sobre Programming Utilities en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 5 de Mzo. de 2015

Comentada:

el 26 de Abr. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by