Ascending table column labels

4 vues (au cours des 30 derniers jours)
Joost de Witte
Joost de Witte le 7 Jan 2020
Commenté : Star Strider le 7 Jan 2020
Hello all,
I've got a table which contains 38 column's, each representing one cycle. I want to label them "cycle 1", "cycle 2", etc.
I tried something like this, but this doesn't work. Any help would be appreciated, thank you!
colnames = "Cycle" + 1:size(matrix,2);
table = array2table(matrix,'VariableNames', colnames);

Réponse acceptée

Star Strider
Star Strider le 7 Jan 2020
Use the compose function (R2016b and later versions):
colnames = compose("Cycle %d", 1:size(matrix,2));
Alternatively, use the sprintfc (undocumented) function:
colnames = sprintfc("Cycle %d", 1:size(matrix,2));
No loop necessary.
  2 commentaires
Joost de Witte
Joost de Witte le 7 Jan 2020
Thank you, it worked.
Star Strider
Star Strider le 7 Jan 2020
As always, my pleasure!

Connectez-vous pour commenter.

Plus de réponses (1)

Jesus Sanchez
Jesus Sanchez le 7 Jan 2020
Modifié(e) : Jesus Sanchez le 7 Jan 2020
I would do it inside a for loop:
matrix = [1 2 3; 3 4 5; 6 4 5; 9 8 7]; % 4 rows and 3 columns
colnames = {}; % Initializes colnames
for n=1:size(matrix,2)
colnames{end+1} = ['Cycle ' num2str(n)];
end
colnames = colnames.'; % To put them in one column, for readability
Result:
ans =
3×1 cell array
{'Cycle 1'}
{'Cycle 2'}
{'Cycle 3'}
  1 commentaire
Joost de Witte
Joost de Witte le 7 Jan 2020
Thank you, did worked!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Image Data Workflows dans Help Center et File Exchange

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by