如何使用特殊格式表将matlab中的矩阵写入.xlsx

如何使用特殊格式表将matlab中的矩阵写入.xlsx,matlab,matrix,formatting,export,export-to-excel,Matlab,Matrix,Formatting,Export,Export To Excel,我在将矩阵从Matlab导出到Excel时遇到一个问题。这不是问题,但我需要一些格式。 我制作了矩阵A和B,并将它们打印到.xlsx文档中 filename = 'example.xlsx'; A; sheet = 1; xlRange = 'A9'; xlswrite(filename,A,sheet,xlRange) B; xlRange2= 'B9'; xlswrite(filename,B,sheet,xlRange2)

我在将矩阵从Matlab导出到Excel时遇到一个问题。这不是问题,但我需要一些格式。 我制作了矩阵A和B,并将它们打印到.xlsx文档中

filename = 'example.xlsx'; 
A;
sheet = 1;                 
xlRange = 'A9';           
xlswrite(filename,A,sheet,xlRange)  

B;
xlRange2= 'B9';
xlswrite(filename,B,sheet,xlRange2)
我得到了这个格式化的example.xlsx文件:

400 4.56
500 5.12
600 6.76
700 7.98
800 8.21
900 9.21
1000 10.12
1100 11.23
1200 12.43
1300 13.89
1400 14.54
1500 15.21
1600 16.23
1700 17.53
400 4.56

500 5.12
600 6.76
700 7.98
800 8.21
900 9.21

1000 10.12
 100 11.23
 200 12.43
 300 13.89
 400 14.54

 500 15.21
 600 16.23
 700 17.53
我需要这种格式化:

400 4.56
500 5.12
600 6.76
700 7.98
800 8.21
900 9.21
1000 10.12
1100 11.23
1200 12.43
1300 13.89
1400 14.54
1500 15.21
1600 16.23
1700 17.53
400 4.56

500 5.12
600 6.76
700 7.98
800 8.21
900 9.21

1000 10.12
 100 11.23
 200 12.43
 300 13.89
 400 14.54

 500 15.21
 600 16.23
 700 17.53

步骤是在500,1000,1500,2000,2500。。。如何放置一个空行以及如何进行这种格式化?

此代码提供xlswrite所需的单元格:

M=[400 4.56
500 5.12
600 6.76
700 7.98
800 8.21
900 9.21
1000 10.12
1100 11.23
1200 12.43
1300 13.89
1400 14.54
1500 15.21
1600 16.23
1700 17.53
900 9.21
1000 10.12
1100 11.23
1200 12.43
1300 13.89
1400 14.54
1500 15.21
1600 16.23
1700 17.53];
gaps=[500, 1000, 1500, 2000, 2500];
%calculates a group indx. 0 is below first gap, 1 between first and second etc..
group=sum(bsxfun(@ge,M(:,1),gaps),2);
%whenever group increases a line must be jumped, calculate indices
index=cumsum(ones(size(M,1),1)+[0;diff(group)>0]);
%allocate empty cell
X=cell(max(index),size(M,2));
%fill data
X(index,:)=num2cell(M);
xlswrite('a.xlsx',X)

将数据转换为单元格时,可以插入包含空元素的行。确定。如何做到这一点,以及如何获得所需的格式?例如?你能试试
M={4004.56;5005.12;[];6006.76;7007.98};xlswrite('a.xlsx',M)
M={4004.56;5005.12;''”;6006.76;7007.98};xlswrite('b.xlsx',M)
。我没有安装excel,因此无法尝试,但其中至少有一个创建了一个空行。两个都正常工作,但两个矩阵中都有大量数据。我不能就这样做。我写了一个答案。刚刚注意到,您的示例在一种情况下有500之前的间隙,而在另一种情况下有500之后的间隙。如果我的回答提供了错误的行为,您必须将
@gt
替换为
@ge