想要把文件夹下面所有的 .nii
文件名全改成类似于 3_i.nii
的文件,i 按照文件顺序从 1 递增。
在当前文件夹下创建一个脚本:re_name3.m
clc;
clear all;
% 读取所有nii后缀的文件
file = dir('*.nii');
% 获取文件个数
len = length(file);
% 遍历所有文件
for i = 1:len
% 获取第i个文件名
oldname = file(i).name;
% 定义第i个文件名,字符串连接函数strcat
newname = strcat('3_', int2str(i), '.nii');
% windows重命名命令:rename oldname newname
% 使用windows命令,32为空格的ASCII码
eval(['!rename' 32 oldname 32 newname]);
end
dir
函数获取当前目录下所有nii
文件信息并存储在file
里file
是一个结构体,保存了文件名、修改时间等一系列文件信息length
函数获取 file 的长度,即保存的文件个数,存储在len
.name
获取file(i)
中的 name 信息,比如3_00053_niftynet.nii
- 定义新文件名使用字符串连接函数
strcat()
- 最后修改文件名需要调用系统命令,
!
表示使用windows命令,32
为空格的 ASCII 码
运行以后就实现了要达到的效果啦~
另外,在批量处理的时候通常可能用到 strcat
函数,其基本用法是:
for i = 1:100
new = strcat('img_', int2str(i), '.jpg');
end
通过以上代码,每次循环 new 都会保存一个新的名字:img_i.jpg