add row to table in app designer - works ... but not completely
49 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
LO
el 7 de Jul. de 2020
Comentada: Adam Danz
el 7 de Jul. de 2020
I am trying to add rows to a table by clicking a button in a GUI
the code is as follows: the table is first initialized through a first button and then the second button is supposed to fill in data (I have not found a better way to add the row of data without this initialization. It seems that after the first addition the second row fails to concatenate, although the values should be taken from the same edit boxes which are constantly updated - I can see that actually)
function ButtonPushed(app, event)
emptydata = {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 };
set(app.UITable, 'Data', emptydata);
end
...
function ButtonPushed(app, event)
rowdata = {app.EditField2.Value app.EditField.Value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 };
% app.UITable = [app.UITable; rowdata];
app.UITable.Data = [{app.UITable.Data{:}}; rowdata];
end
1 comentario
dpb
el 7 de Jul. de 2020
I've never used UITable so no real idea how it works, but looks to me like
app.UITable.Data = [{app.UITable.Data{:}}; rowdata];
would be trying to catenate a cell containing a row vector to a cell of the existing table .Data content that would be a 2x1 cell array, not the catenation of the .Data content itself.
I dunno how the UITable stores the .Data property exactly...surely there are examples?
Respuesta aceptada
Adam Danz
el 7 de Jul. de 2020
If the uitable already has 18 columns,
app.UITable.Data = {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0};
Then add rows, again with 18 columns,
rowdata = {2, 5, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0};
app.UITable.Data = [app.UITable.Data; rowdata];
This has been tested in r2020a.
If the uitable does not have 18 columns, then the first line should be replaced with
app.UITable.Data = num2cell([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]);
Now it will have 18 columns and the 2nd line can stay the same (as long it is also produces 18 columns of data).
2 comentarios
Adam Danz
el 7 de Jul. de 2020
The curly bracket syntax requires that the table already has the same number of columns as the row of values. If your UITable will always contain the same number of columns, you could set that up in AppDesigner > Design View.
Más respuestas (0)
Ver también
Categorías
Más información sobre Develop Apps Using App Designer 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!