필터 지우기
필터 지우기

Create a uitable with dynamic rows in GUIDE

조회 수: 6 (최근 30일)
yu yue
yu yue 2016년 10월 26일
답변: Image Analyst 2016년 11월 5일
I'm writing a GUI with GUIDE.
I wanted to create a table with dynamic features. For example: I input an integer [i]. How can I tell Matlab to create [i] rows in my table? The columns are fixed. How can I dynamically change variable 'd' to [i x 7]?
f = figure;
d={[],[],[],[],[],false,[];[],[],[],[],[],false,[];[],[],[],[],[],false,[];[],[],[],[],[],false,[];[],[],[],[],[],false,[];[],[],[],[],[],false,[];[],[],[],[],[],false,[];[],[],[],[],[],false,[];[],[],[],[],[],false,[]};
columnformat = {'numeric', 'numeric','numeric','numeric','numeric','logical','numeric'};
columneditable = [ true true true true true true true];
rowname = {'1','2','3','4','5','6','7','8','9'};
t = uitable(f,'Data',d,...
'ColumnName', [],...
'ColumnFormat', columnformat,...
'ColumnEditable', columneditable,...
'RowName',rowname,'Position',[15 20 550 300]);
Thank you.

채택된 답변

Nick Counts
Nick Counts 2016년 11월 5일
편집: Nick Counts 2016년 11월 5일
You can define a default row cell and use repmat() to build a cell array of the size you want:
i = 7
defaultRow = {[],[],[],[],[],false,[]}
d = repmat(defaultRow, [i,1])
Hope that helps

추가 답변 (1개)

Image Analyst
Image Analyst 2016년 11월 5일
Just make up d and set the data property of the uitable equal to d. The table will spring-adjust to the same number of rows as d has.

카테고리

Help CenterFile Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by