Write different sized cell arrays of strings to one excel sheet

1 visualización (últimos 30 días)
I would like to list the string values contained in cell arrays of different sizes in their own column in excel. Here's my example and goal:
c1={'The' 'quick' 'brown'} %this should be the first column in excel
c2={'fox' 'jumps'} %this should be the second column in excel
Goal (these are rows and columns in excel):
The fox
quick jumps
brown
My idea was to run a big loop and write each cell array as a column piecemeal using the range option in xlswrite, but was hoping there was a faster way to make one large padded array in MATLAB or something first, as I have a lot of data to write.

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 11 de Sept. de 2020
Try this
c{1} = {'The' 'quick' 'brown'}; %this should be the first column in excel
c{2} = {'fox' 'jumps'}; %this should be the second column in excel
c{3} = {'over' 'the', 'lazy'};
c{4} = {'dog'};
max_size = max(cellfun(@numel, c));
c_padded = cellfun(@(x) [x.'; cell(max_size-numel(x), 1)], c, 'uni', 0);
c_padded = [c_padded{:}];
writecell(c_padded, 'filename.xlsx')
  2 comentarios
Marcus Glover
Marcus Glover el 11 de Sept. de 2020
Perfect, Thanks!
I wish I learned about writecell years ago!
Ameer Hamza
Ameer Hamza el 11 de Sept. de 2020
I am glad to be of help!!
If by "years" you mean 1.5 years ;) because writecell was recently added to MATLAB in R2019a.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by