Ascending table column labels

1 Ansicht (letzte 30 Tage)
Joost de Witte
Joost de Witte am 7 Jan. 2020
Kommentiert: Star Strider am 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);

Akzeptierte Antwort

Star Strider
Star Strider am 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 Kommentare
Joost de Witte
Joost de Witte am 7 Jan. 2020
Thank you, it worked.
Star Strider
Star Strider am 7 Jan. 2020
As always, my pleasure!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Jesus Sanchez
Jesus Sanchez am 7 Jan. 2020
Bearbeitet: Jesus Sanchez am 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'}

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Produkte


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by