Matlab导入文件夹下所有指定类型的数据

函数描述

导入文件夹下所有指定类型的文件。
里面用的是importdata函数,该函数能导入的类型都可以导入。

导入的文件将以文件名命名,存在输出结果的结构体中。

使用示例

"C:\Users\Administrator\Desktop\"下存在testA.csvtestB.csv

InputData = ImportTypeFilesFromForder("C:\Users\Administrator\Desktop\","*.csv");

调用后将得到InputData 结构体,其中包含testAtestB两个元素。

函数源码

% *************************************************************************
% @brief    导入文件夹下的指定类型的所有文件
% @param    string FolderPath  文件目录  eg:"C:\Users\Administrator\Desktop\"
% @param    string Type        文件类型  eg:"*.txt"  "*.csv"
% @return   struct InputData   导入后的数据,以文件名称命名
% *************************************************************************
%% function
function InputData = ImportTypeFilesFromForder( FolderPath, Type )
    % 输入合法性检查
    if ( (length(FolderPath)~=1) || ~isstring(FolderPath) )
        error( 'ImportCsvFileFromForder: 输入参数 "FolderPath" 不是string类型,或不是单独的一个字符串' );  
    elseif ( (length(Type)~=1) || ~isstring(Type) )
        error( 'ImportCsvFileFromForder: 输入参数 "Type" 不是string类型,或不是单独的一个字符串' );          
    end
    % 在FolderPath目录下寻找Type类型的文件
    files = dir( fullfile(FolderPath, Type) );
    % 文件存在判断
    if( isempty( files ) )
        error( ['ImportCsvFileFromForder: ' char(FolderPath) '目录下没有' char(Type) '类型的文件'] );  
    end
    % 将文件导入Matlab
    for i = 1:length( files )
       filePath = fullfile( FolderPath, files(i).name );                   % 对应文件的地址
       fileName = regexprep( files(i).name, '\.[^.]*$','' );               % 提取文件名,作为变量名称
       eval( ['InputData.' fileName '=' 'importdata(''' char(filePath) ''');'] );
    end
    return;
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值