Create a uitable with dynamic rows in GUIDE

5 ビュー (過去 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 Center および File ExchangeMigrate GUIDE Apps についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by