matlab用dlmread函数读取txt文件数据,然后用xlswrite函数写入excel文件 为什么数据只有一列,并没有像txt文件一样分成10列数据?


clear all
clc
dbstop if error
file=dir('C:\fengjishuju\*.txt');  
Ntxt=length(file);  
Sheet='Sheet';   
for i=1:Ntxt
    TEMP=[dlmread(['C:\fengjishuju\',file(i).name],' ', 6,0)];
    num=num2str(i);                                                              %把循环变量i由数字转换成字符并赋值给变量num
    gzb{i}=strcat(Sheet,num);                                                %把sheet和num两个变量连接起来
    xlswrite('fengjidata.xlsx',TEMP,gzb{i},'C1');   
end

img


数据长这样

你好,看了你的代码,你输出的数据是在每一个sheet里面的C1列,而不是在一个sheet里面有10列。
所以建议是

%for循环外
ch=char(double('A'):double('A')+9);
for i=1:Ntxt
    TEMP=[dlmread(['C:\fengjishuju\',file(i).name],' ', 6,0)];
    num=num2str(i);                                                              %把循环变量i由数字转换成字符并赋值给变量num
    gzb{i}=strcat(Sheet,num);                                                %把sheet和num两个变量连接起来
range=['A1:',ch(end),num2str(size(TEMP,1))];
    xlswrite('fengjidata.xlsx',TEMP,gzb{i},'range', range);   
end

类似这样就可以啦

img


这是输出的excel文件
求求了