Creating a Dynamic Table using push button in Matlab GUI

8 visualizzazioni (ultimi 30 giorni)
Hello,
I am creating a dynamic table using Matlab GUI, so far it is going good. I will atach my code:
function EVRIM_GUI
f = figure('Visible','off','Units', 'centimeters', 'Position',[1.5,1.5,28,16.5]);
CreateBoundary = uicontrol('Style','pushbutton','String','CreateBoundary','Units', 'centimeters','Position',[21.5,8,3,1],'Callback',{@CreateBoundary_Callback});
AssemblyData5 = {0,0,0,0};
function CreateBoundary_Callback(source,eventdata)
AssemblyTable5= uitable(f, 'Units', 'centimeters','Position', [12,1,9,5], 'Data', AssemblyData5,'ColumnEditable',[true, true, true,true], 'ColumnName',{'Position/m'; 'BodayName1';'BodyName2';'Type'},'CellEditCallback', {@AssemblyEdit_Callback5});
for TempIndex5= 1:4
AssemblyData5{TempIndex5,1} = 0
AssemblyData5{TempIndex5,2} = 0;
AssemblyData5{TempIndex5,3} = 0;
AssemblyData5{TempIndex5,4} = 0;
end
set(AssemblyTable5, 'Data',AssemblyData5);
end
I want to remove the for loop to create the number of rows in the table, it should only display 1 row initially, and when the user enters the data in the row and presses enter, another row should appear.
Does anybody knows what to change in it?

Risposta accettata

Chris Dan
Chris Dan il 8 Lug 2020
I found the answer:
function CreateBoundary_Callback(source,eventdata)
set(AssemblyTable5, 'visible', 'on')
data = get(AssemblyTable5, 'data');
data(end+1,:)={0};
set(AssemblyTable5,'data',data)
end

Più risposte (0)

Categorie

Scopri di più su Workspace Variables and MAT-Files in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by