MATLAB中批量文件的复制,Matlab中从文件夹中批量读取文件的做法

function [read_data]=batch_read_file(file_type);

% <>

%   可以读取的文件中,若有列数不相同的,则补 nan

%   数据文件中只能是数字

%   *.xls 文件只能是英文或数字命名

% 批量读数据的程序 注,只能读取 *.txt类文件,且文件必须有后缀名

% [read_data_A]=batch_read_file('*.txt')

% [read_data_A]=batch_read_file('*.xls')

% file_type为文件的格式

% 返回值 read_data 为元胞数值,保存谋取到的数据

% 对 xls 文件的说明:

% xls 文件以文件名升序排序

% xls 文件只能容许一个工作表,若有多个,则读取的为名字值最大的一个工作表

% file_type='*.txt'类 or file_type='*.xls';

%   示例:在数据文件中有如下内容 1.txt

%   1 2 3.345 1234.5422 12

%   1.2222 2.3333 3.4444

%   1 2 3 4 5 6 7 8 9

%   读出的数据是一个 (3,9)的矩阵 空缺的部分为 nan

file_read=dir(file_type);% 获得要读取的文件列表

%%%%%%%%%%%%%-+-XLS XLS XLS XLS XLS-+-%%%%%%%%%

% 在此段读取 *.xls 类文件

if strcmp(file_type,'*.xls')

for i=1:length(file_read)

file_name{i}=file_read(i).name;% 获取文件名的列表

% 开始准备向从 xls 文件中读取数据

read_data{i}=xlsread(file_name{i});

end

else

%%%%%%%%%%%%%-+-TXT TXT TXT TXT TXT-+-%%%%%%%%%

% 在此段读取 *.txt 类文件

for i=1:length(file_read)

file_name{i}=file_read(i).name;

fid=fopen(file_name{i},'r');

% 开始准备向从文件中读取数据

k=1;

while ~feof(fid)

% 这儿用fgetl似乎也没有错

temp=fgets(fid);

length_temp_data(k)=length(str2num(temp));% 求长度

temp_read_data{i}{k}=str2num(temp);%   写

%%%%%%%%

k=k+1;

end

%%-----

max_row=max(length_temp_data);% 求最大的长度,以确定补 nan 的个数

%%%%%%

for j=1:k-1

len=length(temp_read_data{i}{j});

if len

temp_read_data{i}{j}(len:max_row)=nan;

end

read_data{i}(j,:)=temp_read_data{i}{j};

end

fclose(fid);

end

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值