在excel电子表格中存储单元格数组中包含的MATLABstring

我在Excel电子表格中存储MATLABstring。

我的数据是这样的:

Matrix = [644x16 char] [686x16 char] [569x13 char] [660x13 char] [619x13 char] [599x13 char] [607x13 char] [702x13 char] [633x13 char] [623x11 char] [645x11 char] [697x11 char] ... 

我想将这些string保存在Excel列中。 由于不是所有的string都具有相同数量的字符,我不得不将这些数据存储在cellarrays上。

有任何想法吗? 非常感谢你的配偶。

要使用xlswrite将不同大小的多个matrix写入Excel文件, xlswrite为每个子matrix指定起始单元格:

xlsWriteMatCell.m

 function xlsWriteMatCell(fileName,M) startCells = cumsum([1 cellfun(@(c)size(c,1),M)]); startCells(end) = []; for ic = 1:numel(startCells), xlswrite(fileName,M{ic},1,['A' num2str(startCells(ic))]); end 

testing

 Matrix = {rand(5,4),rand(6,6),rand(3,3)}; xlsWriteMatCell('test.xlsx',Matrix) 

在这里输入图像说明

用字符:

 Matrix = {char(randi(25,5,4)+64),char(randi(25,6,6)+64),char(randi(25,3,3)+64)} xlsWriteHetro('testChars.xlsx',Matrix) 

在这里输入图像说明

这将比写入一个原始CSV文件慢,但它会给你一个Excel电子表格。

尝试这个:

 % test data Matrix = {['ab';'cd'];['efg';'hij';'klm']}; fid = fopen('out.csv', 'w'); % For each element of cell for i = 1:length(Matrix); mat = Matrix{i}; % for each line in cell-element for ii = 1:size(mat,1) fwrite(fid, mat(ii,:)); fwrite(fid,';'); end end fclose(fid); 

输出文件的内容是:ab; cd; efg; hij; klm;