程序如下:
% n 为数据文件个数
% 数据文件格式为: mat dat txt xls
% data 为输入数据的结构体
% 取出任何一个来用的语句为 data{i} i表示第i次读入文件!(如果进行了顺序组合,最后只剩下data{1}!)
% 例如你要输出第3次的读入文件,并赋值给A 语句如下:(如果进行了顺序组合,最后只剩下data{1}!)
% A=data{3};(如果进行了顺序组合,最后只剩下data{1}!)
clear
n=input ('输入文件个数:n=');
for i=1:n
[filename,pathname]=uigetfile({'*.xls';'*.txt';'*.dat';'*.mat' },'导入数据');
l= length(filename);
if l<5
errordlg ('wrong file','file open error !!!');
return;
end
filename1=strcat(pathname,filename);%合并绝对路径
test=filename(1,l-3:l);
switch test
case '.mat'
d=struct2cell(load(filename1));%绝对路径;取出文件夹中数据;
a=d;
case '.dat'
d=(load(filename1));%绝对路径;取出文件夹中数据;
a=d;
case '.txt'
d=(load(filename1));%绝对路径;取出文件夹中数据;
a=d;
case '.xls'
file=fullfile(pathname,filename);
d=xlsread(file);
a=d;
otherwise
errordlg ('wrong file','file open error !!!');
return;
end
cd(pathname); %保存绝对路径
data{i}=a;
end
disp('0 不做任何操作')
disp('1 按照导入顺序组合(要求:文件列数相同)')
sss=input('输入:0 or 1\n');
switch sss
case 0
data1=data;
case 1
D=[];
for i=1:n
clear A
A=data{i}(:,:);
D=[D;A];
end
data1{1}=D;
otherwise
errordlg ('wrong Number/n REPEAT','The No. is error !');
break
end
clear data filename filename1 a d sss i l n test A D file j
data=data1;
clear data1
直接转成m文件运行就能读取,程序最后路径为数据所在的路径。
从第一个%复制
使用方法:
在保存为wt.m文件,完成后生成wt.m文件,在matlab里输入help wt有解释。。。