Write different sized cell arrays of strings to one excel sheet

조회 수: 4 (최근 30일)
Marcus Glover
Marcus Glover 2020년 9월 11일
댓글: Ameer Hamza 2020년 9월 11일
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.

채택된 답변

Ameer Hamza
Ameer Hamza 2020년 9월 11일
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
Marcus Glover
Marcus Glover 2020년 9월 11일
Perfect, Thanks!
I wish I learned about writecell years ago!
Ameer Hamza
Ameer Hamza 2020년 9월 11일
I am glad to be of help!!
If by "years" you mean 1.5 years ;) because writecell was recently added to MATLAB in R2019a.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Spreadsheets에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by