将数据从单元格导出到Excel文件

比方说,我有一个名为data的单元格,如下所示:

 data{1} = vector1; data{2} = vector2; ... data{n} = vectorn; 

数据中的所有vector(具有数值)具有相同的1xN大小。

现在,我想将这个数据文件导出到一个.xlsx文档中,每一行都是一个向量,我想标记每一列。 结果应该是这样的:

  label1 label2 ... labelN vector1(1,1) vector1(1,2) ... vector1(1,N) ... ... ... ... vectorn(1,1) vectorn(1,2) ... vectorn(1,N) 

我试图做到这一点使用:

 n=10; N=5; for i=1:n data{i}=rand(1,N); end filename='test.xlsx'; xlswrite(filename,data) 

但我的.xlsx文件只包含一行data中的所有数据。 而且我不知道如何去做标签。

请帮帮我。

这可以使用vertcatnum2cellsprintfstrsplitxlswrite ,如下所示:

 modified_data = num2cell(vertcat(data{:})); % Converting 1xn cell into nxN cell % Generating Column Headers as specified in the question col_header = strsplit(sprintf('label%d ' , 1:N)); col_header = col_header(1:end-1); % If N is not much high number (eg; if N=5), you can input Column Headers as: % col_header = {'label1','label2','label3','label4','label5'}; filename='test.xlsx'; % Name of the excel file to be written xlswrite(filename,[col_header; modified_data]); % Writing the excel file 

因为你在一个单元格( data{i} )中一起调用rand(1,N) )。 对于它自己的单元格中的每个值,您都必须创build一个nxN单元格matrix,如果您从整个matirx转换,最简单的方法就是:

 n=10; N=5; data=rand(n,N); celldata=num2cell(data); filename='test.xlsx'; xlswrite(filename,celldata); 

否则你必须做两个循环,但那不是很好的performance