ColumnEditable problem with categorical

3 次查看(过去 30 天)
f = figure('Position', [100 100 752 250]);
t = uitable('Parent', f, 'Position', [25 50 700 200]);
t.ColumnName = {'Num1','Num2','Text'};
t.Data = {'b', 'q','JN'};
t.ColumnEditable=[true,true,true];
ret=categorical({'H';'L'});
t.ColumnFormat ={'bank' ret 'bank'};
Error setting property 'ColumnFormat' of class 'Table':
ColumnFormat definitions must be either 'numeric', 'logical', 'char', or be a popupmenu definition
Error in CANCELLA (line 10)
t.ColumnFormat ={'bank' ret 'bank'};

采纳的回答

Cris LaPierre
Cris LaPierre 2023-6-16
You can't set the ColumnFormat value to be a categorical. It must be either 'numeric', 'logical', 'char', or be a popupmenu definition (character array).
Why not just do this?
f = figure('Position', [100 100 752 250]);
t = uitable('Parent', f, 'Position', [25 50 700 200]);
t.ColumnName = {'Num1','Num2','Text'};
t.Data = {'b', 'q','JN'};
t.ColumnEditable=[true,true,true];
ret={'H' 'L'};
t.ColumnFormat ={'bank' ret 'bank'};
Not sure what you want the 'bank' values to be. If you meant 'blank', use [] instead.
t.ColumnFormat ={[] ret []};
If you meant to have them be dropdown menu uptions for the first and third column, do this.
t.ColumnFormat ={{'bank'} ret {'bank'}};
  5 个评论
Cris LaPierre
Cris LaPierre 2023-6-16
Again, you can't use categoricals. It must be a char. If your data coming in is categorical, you must extract the categories and use that to set the ColumnFormat.
May something like this?
f = figure('Position', [100 100 752 250]);
t = uitable('Parent', f, 'Position', [25 50 700 200]);
t.ColumnName = {'Num1','Num2','Text'};
t.Data = {'b', 'q','JN'};
t.ColumnEditable=[true,true,true];
ret=categorical({'H';'L'});
cat = categories(ret);
t.ColumnFormat ={[] {cat{:}} []};

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by