how use categorical in uitable

9 visualizzazioni (ultimi 30 giorni)
shamal
shamal il 25 Gen 2025
Commentato: shamal il 26 Gen 2025
VNAMES={'On','Trading','L_S','Stat','PROVA','Cap','Perc','Draw_Sys'};
cat=categorical({'Fil';'Stat'});
VTYPES=[{'logical'},{'string'},{'string'},{'double'},{'double'},{'cat'},{'double'},{'logical'}];
T=table('Size',[nrows,numel(VNAMES)],'VariableTypes',VTYPES,'VariableNames',VNAMES);
Error using table (line 310)
Specify variable types as a string array or a cell array of character
vectors, such as ["string", "datetime", "double"].
i try to use in vtypes : {'cat'}..{cat}...{"cat"} but it give me an error

Risposta accettata

Walter Roberson
Walter Roberson il 26 Gen 2025
nrows = 5;
VNAMES={'On','Trading','L_S','Stat','PROVA','Cap','Perc','Draw_Sys'};
cat=categorical({'Fil';'Stat'});
VTYPES=[{'logical'},{'string'},{'string'},{'double'},{'double'},{'categorical'},{'double'},{'logical'}];
T=table('Size',[nrows,numel(VNAMES)],'VariableTypes',VTYPES,'VariableNames',VNAMES)
T = 5x8 table
On Trading L_S Stat PROVA Cap Perc Draw_Sys _____ _________ _________ ____ _____ ___________ ____ ________ false <missing> <missing> 0 0 <undefined> 0 false false <missing> <missing> 0 0 <undefined> 0 false false <missing> <missing> 0 0 <undefined> 0 false false <missing> <missing> 0 0 <undefined> 0 false false <missing> <missing> 0 0 <undefined> 0 false
Your problem was using 'cat' as the variable type name instead of 'categorical'
  3 Commenti
Walter Roberson
Walter Roberson il 26 Gen 2025
catty = categorical(["No", "No", "All", "Ranking", "No"]);
nrows = 5;
VNAMES={'On','Trading','L_S','Stat','PROVA','Cap','Perc','Draw_Sys'};
cat=categorical({'Fil';'Stat'});
VTYPES=[{'logical'},{'string'},{'string'},{'double'},{'double'},{'categorical'},{'double'},{'logical'}];
T=table('Size',[nrows,numel(VNAMES)],'VariableTypes',VTYPES,'VariableNames',VNAMES)
T = 5x8 table
On Trading L_S Stat PROVA Cap Perc Draw_Sys _____ _________ _________ ____ _____ ___________ ____ ________ false <missing> <missing> 0 0 <undefined> 0 false false <missing> <missing> 0 0 <undefined> 0 false false <missing> <missing> 0 0 <undefined> 0 false false <missing> <missing> 0 0 <undefined> 0 false false <missing> <missing> 0 0 <undefined> 0 false
T.Cap = catty(:)
T = 5x8 table
On Trading L_S Stat PROVA Cap Perc Draw_Sys _____ _________ _________ ____ _____ _______ ____ ________ false <missing> <missing> 0 0 No 0 false false <missing> <missing> 0 0 No 0 false false <missing> <missing> 0 0 All 0 false false <missing> <missing> 0 0 Ranking 0 false false <missing> <missing> 0 0 No 0 false
The clue is "values within a cell array". You are trying to use cell array elements that are categorical, whereas the array at that point should just be categorical instead of cell array containing categorical.
betty1 = categorical(["No", "No", "All", "Ranking", "No"]);
betty = num2cell(betty1(:))
betty = 5x1 cell array
{[No ]} {[No ]} {[All ]} {[Ranking]} {[No ]}
T.Cap(1:5) = catty %works because the elements are already categorical
T = 5x8 table
On Trading L_S Stat PROVA Cap Perc Draw_Sys _____ _________ _________ ____ _____ _______ ____ ________ false <missing> <missing> 0 0 No 0 false false <missing> <missing> 0 0 No 0 false false <missing> <missing> 0 0 All 0 false false <missing> <missing> 0 0 Ranking 0 false false <missing> <missing> 0 0 No 0 false
T.Cap(1:5) = betty %fails because the elements are cell array of categorical
Error using . (line 507)
Right hand side of an assignment to a categorical array must be a categorical or text representing a category name.
shamal
shamal il 26 Gen 2025
i solve problem with this solution:
app.UITable.Data=T;
app.UITable.ColumnName=["On";'Trading';"L/S";"Static";"PROVA";"Capitale $";"100% Distrib";"Draw_Sys"];
cat=categorical({'LS';'L';'S'});
cat1=categories(cat);
colu={'logical' 'char' 'char' 'char' {cat1{:}} 'char' 'char' 'logical'};

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Mathematics and Optimization in Help Center e File Exchange

Prodotti


Release

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by