Ascending table column labels
2 views (last 30 days)
Show older comments
Joost de Witte
on 7 Jan 2020
Commented: Star Strider
on 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);
0 Comments
Accepted Answer
Star Strider
on 7 Jan 2020
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 Comments
More Answers (1)
Jesus Sanchez
on 7 Jan 2020
Edited: Jesus Sanchez
on 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'}
See Also
Categories
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!