How can I merge multiple cells in one row?
5 次查看(过去 30 天)
显示 更早的评论
I have 2 cells. I need to put them both in a first row. First cell will be first, and the second cell will repeat n times after the first one, in first row.
For better imagination:
cell_1 = {'date', 'year', 'place'}
cell_2 = {'name', 'age', 'time'}
And the final result should be one-row cell with cell_1 and multiple cell_2 following after.
Like this:
firstrow = {'date', 'year', 'place','1_name', '1_age', '1_time','2_name', '2_age', '2_time','3_name', '3_age', '3_time'}
I've tried this already with for/while loops to go step by step and put all the cell content in the table, however it isn't perect and it keep skipping last cells. And, I was unsuccesful with using things like "cell_1{end:end+3} = cell_2{:}".
Thanks in advance.
edit: better choice of words
0 个评论
采纳的回答
Star Strider
2022-4-30
Try this —
cell_1 = {'date', 'year', 'place'};
cell_2 = {'name', 'age', 'time'};
firstpass = cellfun(@(x)sprintf('%%d_%s',x),cell_2, 'Unif',0);
for k1 = 1:numel(firstpass)
for k2 = 1:3
sp{k1,k2} = sprintf(firstpass{k1},k2);
end
end
secondpass = reshape(sp, 1, []);
firstrow = cat(2, cell_1, secondpass)
.
2 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!