您的位置:首页 > 编程语言 > MATLAB

MATLAB批量文件重命名(详细解释)

2015-11-19 00:03 197 查看
这段时间在用matlab做手写数字识别,处理样本的时候需要对样本文件进行重命名,可是有好多,总不能一个一个重命名吧,于是上网百度了好多,不过大多都一样,但是没有解释,只有干巴巴的程序,弄了好一会才弄清楚(我太菜了……),于是写下了以备后用。

假设我有0.bmp,1.bmp,2.bmp……,99.bmp100个bmp图像文件,出于某种需要我要在名字前加上一个“RH_”字符串,代码如下

file = dir('*.bmp');
len = length(file);
for i = 1 : len
oldname = file(i).name;
newname = strcat('RH_', oldname);
% '!'的意思是调用系统函数,32是ASCII码值,表示空格
eval(['!rename' 32 oldname 32 newname]);
end


首先用dir函数获得工作目录下所有bmp文件信息,返回的file是一个结构体,里面包含了文件名、修改时间等信息,我们用的就是第一个域名字name,接着获得bmp文件的个数,然后就是一个循环,用strcat函数将“RH_”与原文件名连接起来,然后重点就是这个eval函数的用法,查看eval函数的帮助可以知道,这个函数实际上就是执行将括号里表达式中的matlab代码(eval(EXPRESSION) evaluates the MATLAB code in the string EXPRESSION),“!”的意思是调用Windows系统函数(Linux下好像是将rename改为system),比如这里的rename函数,实际上eval括号里的意思就是这样,只不过是调用的系统函数,32是ASCII码,表示空格,你也可以使用逗号代替

rename oldname newname


好了,又是十二点了,就到这吧,欢迎交流!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: