Ascending table column labels
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Star Strider
2020-1-7
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.
更多回答(1 个)
Jesus Sanchez
2020-1-7
编辑:Jesus Sanchez
2020-1-7
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'}
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Data Workflows 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!