收集数据时,我目前已将文件命名为以下格式:
1_10.mat
下划线前的数字是大陆:
1- Africa
2- South America
3- Central America
第二个数字是在该大陆进行测量的日期。我想做的是将测量的国家也添加到文件名的末尾。例如:
1_1 --> 1_10
我想将每个都重命名为1_1_Zaire --> 1_10_Zaire
1_11 --> 1_14
,我想将每个都重命名为1_11_Kenya --> 1_11_Kenya
如何在将所有.mat文件保存在同一文件夹中的情况下执行此操作?如果可能的话,我更喜欢使用MATLAB进行重命名。
据我所知,算法如下:
- 用所有.mat文件命名一个目录
- 从界1到界x进行for循环
- 连接我想要的短语
唯一的问题是,我不知道如何获得循环的长度,也不明白MATLAB是如何读取目录中的文件的。
这就是我尝试过的。
directory = 'C:place';
for 1 : 9
curName = directory.name;
s = '_Africa';
laterName = (strcat(directory,s)).name;
end
这样的东西应该会让你开始:
directory = 'C:place';
% Filter the list of files using * as a wildcard.
file = strcat(directory, '*.mat');
% Get a list of files and concatenate them with the directory name.
results = dir(file);
file_name = strcat(directory, '', num2cell(char(results.name), 2)')';
% The total number of files
nfile = length(file_name)
% Loop through each file.
for i = 1: nfile
curName = file_name{i}
d = textscan(curName, '%3s%f%1s%f');
if (d{2} == 1)
if (1 <= d{4} && d{4} <= 10)
laterName = sprintf('.\%i_%i_Zaire.mat', d{2}, d{4})
elseif (11 <= d{4} && d{4} <= 14)
laterName = sprintf('.\%i_%i_Kenya.mat', d{2}, d{4})
end
else
% ...
end
end