在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都具有相同数量的字符,我不得不将这些数据存储在cell
arrays上。
有任何想法吗? 非常感谢你的配偶。
要使用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;