Matlab获取文件夹下所有文件名并将数据按矩阵赋值给变量

it2022-06-25  98

一、获取一个文件夹下所有文件名:

fileFolder=fullfile('D:\MATLAB\bin\trc'); dirOutput=dir(fullfile(fileFolder,'*.trc')); fileNames={dirOutput.name};

解释:

1、第一行

fileFolder=fullfile('D:\MATLAB\bin\trc');

引号内是需要遍历的路径,填绝对路径,然后保存在fileFolder

2、第二行

dirOutput=dir(fullfile(fileFolder,'*.trc'));

引号内是文件的后缀,写'.trc'则读取后缀为'.trc'的文件

3、第三行

fileNames={dirOutput.name};

将所有文件名,以矩阵形式按行排列,保存到fileNames中

 

二、将数据按矩阵赋值给变量

n = 1; for i=fileNames i_trace = strcat('D:\MATLAB\bin\trc\',i); eval(['T',num2str(n),'=','load(i_trace{1,1})',';']); n = n+1; end

1、strcat('D:\MATLAB\bin\trc\',i);获取详细路径,如得到:

i_trace = D:\MATLAB\bin\trc\baiyulin_g9.trc

 

2、eval(['T',num2str(n),'=','load(i_trace{1,1})',';']);

①eval()是将内容赋值给Tn

②load(i_trace{1,1})是读取文件

③i_trace{1,1}中的{1,1}是读取cell格式的文件,方便load加载,不加{1,1}会报错!!!

 

3、最终得到

变量名为T1至TN的n个储存着该目录下所有对应文件内容的变量

 

4、亦可以将变量名命名为你想要的名字

方法使用matlab的正则表达式:

name = regexprep(i,'(_)(g)(\d)+(.)(trc)$','');

这个式子可将字符串为‘baiyulin_g9.trc’的转换为‘baiyulin’。

 

三、最终形式

fileFolder=fullfile('D:\MATLAB\bin\trc'); dirOutput=dir(fullfile(fileFolder,'*.trc')); fileNames={dirOutput.name}; n = 1; for i=fileNames i_trace = strcat('D:\MATLAB\bin\trc\',i); eval(['T',num2str(n),'=','load(i_trace{1,1})',';']); n = n+1; end

  

转载于:https://www.cnblogs.com/piaobodewu/p/10008815.html


最新回复(0)