I have a problem aligning text in uitable due to the data type.

3 vues (au cours des 30 derniers jours)
Yasmin Samy
Yasmin Samy le 10 Mai 2019
Commenté : Yasmin Samy le 12 Mai 2019
Hi all,
I have a uitable in my figure and can`t seem to adjust the alignment of the text. Apparently, from the documenation (https://www.mathworks.com/help/matlab/ref/matlab.ui.control.tableappd-properties.html), char is automatically displayed justified to the left and the numeric to the right.
In my code, i converted num2cell the 4 arrays and then combined them by horzcat to get the final table to use. This is what i got: All the columns to the left except the N is to the right. Can anyone help me adjust this please? Either by working on data type, alignments in uitables, or any other solution that makes the tables readable instead of looking confusing! Thanks
uit.PNG
  4 commentaires
Walter Roberson
Walter Roberson le 11 Mai 2019
Instead of the [505 etc] you could put a variable that had the numeric values.
However, this approach is useless to you, as string() and compose() were not added until R2016b.
arrayfun(@(x) sprintf('%-3s', sprintf('%.3g',x)), YourArray, 'uniform', 0)
However, %.3g is perhaps not suitable for your last column.
You can sprintf uniform 0 each column by itself, with whatever numeric format and string width you want.
There are certainly other ways to get left justification. One way is to write, for example,
LJ = @(S, N) [S, blanks(N-strlen(S))];
arrayfun(@(x) LJ(sprintf('%.3g', x), 3), YourArray, 'uniform', 0)
but if you are going to be doing columns separately and putting them together then,
arrayfun(@(x) sprintf('%-3d', x), YourArray(:,1), 'uniform', 0)
Yasmin Samy
Yasmin Samy le 12 Mai 2019
Thanks that works!!!

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits


Version

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by