怎么在for循环中使用xlswrite函数把数据输出到Excel表格 && MATLAB 循环中用变量控制写入excel位置

代码如下:
clear all
clc
k=1; 
kk=[{char('r1')},{char('T1')}];
xlswrite('DriverInfo.xls',kk,'sheet1',['A',num2str(k)]);
for i=2:9 
    k=k+1;
    a=i;
    b=i+1;
    kk=[a,b];
    xlswrite('DriverInfo.xls',kk,'sheet1',['A',num2str(k)]); 
end

效果如下所示:

 

 

我的数据文件data.txt
1  5   2.1
2 9.8 -4.4
3 15 1.8
4 20 -3.2
5 25 2.6
6 30 -1.3
7 35 2.3
8 40 -1.2
9 45 -4.4
10 49.6 -0.9
现希望将数据文件输出到data.xls中,我的代码如下,每个数据占一个单元格,这条可以实现,但是输出的excel文件中,数据在单元格靠右输出,不知道如何使得数据和表头文字居中排列,希望高手指点!
A=load('D:\data.txt')
B=[A(:,1)';A(:,2)';A(:,3)'];
fid=fopen('D:\data.xls','wt');
sour={'测序编号','数据1','数据2'};
fprintf(fid,'%s\t%s\t%s\n',sour{1},sour{2},sour{3}); %用\t(tab分隔符)使得每个数据占excel一个空格
fprintf(fid,'\n%d\t%6.1f\t%6.1f',B);
fclose(fid);
问题补充:要由matlab来控制输出格式
 
 
 
 
 
 
 
clear all
%建立一个元胞数据header,有一行两列
header=cell(1,2);
%header第一行第一列内容为 filename
header{1,1}='filename';
%header第一行第二列内容为 Lissajous figure Area
header{1,2}='Lissajous figure Area'; 
%在路径下新建Area.xls,要写的变量为header,写在在Area.xls中新建的A工作表中,且在A的A1:B1范围
xlswrite('E:\Program Files\MATLAB\R2013a\Area.xlsx',header,'A','A1:B1');
%初始化两个变量
Area1=0;ki=1
    for i=1:10
Area1=Area1+i;ki=ki+1;
%定义range,即cellname变量内容为一个拼接而成的字符串,即Aki:Bki,但直接这样写就不行,因为ki为数字
cellnames=['A',num2str(ki),':B',num2str(ki)]
%拼接字符串变量tileH,内容为c25ki,
tileH=['c25',num2str(ki)]; 
%新建并赋值给数组data,
data{1,1}=tileH;data{1,2}=Area1; 
%写入excel表格中
xlswrite('E:\Program Files\MATLAB\R2013a\Area.xlsx',data,'A',cellnames);
    end
 
注意:在主界面工作窗口同时键入ctrl+c即可终止运算
posted @ 2020-09-25 12:16  楚千羽  阅读(4030)  评论(0编辑  收藏  举报