回 帖 发 新 帖 刷新版面

主题:如何在函数中将输入的文件名改成另一文件名

各位高手:我在编制一个函数时,遇到须将一个外部输入的函数aaa(自定义的函数,如aaa.m)的文件名更改为一个指定的m文件(因程序中的其他子程序也需用该函数,eg:bbb.m),试了几种方法如:!copy [aaa,'.m'] !rename, save 等都无法通行。不知能否在matlab下实现。望知情者告知,不胜感激!

回复列表 (共7个回复)

沙发

比较笨的方法,读取源文件写入新文件,试试吧

function rename
fid=fopen('oldname.m','r');
fid2=fopen('newname.m','w');
while 1
   tline=fgetl(fid);
   if ~ischar(tline),break, end
   % disp(tline);
   fprintf(fid2,tline);
   fprintf(fid2,'\r');
end
fclose(fid);
fclose(fid2);

板凳

非常感谢!我先试试能否可行,再向 Ric报告结果。

3 楼

似乎不可行。其原因是oldname不是固定的,它由外部输入(有任何可能性)。若是固定的文件名,用save, rename, copy 等都行。

4 楼

哦,那个函数是如何进入你的程序的,用户输入?

5 楼

自定义函数的文件名作为一个通用函数的一个输入项

6 楼

不太明白,如果把函数改为接受两个参数的 rename(‘oldname’,‘newname’),,在输入函数的名称确定之后,调用这个函数改,不可以吗

7 楼

我们自己使用该函数,就是实现这样做的(事先拷贝、改名字等)。但作为一个通用型的函数,应根据使用者自编的函数,输入、识别并调用。

我来回复

您尚未登录,请登录后再回复。点此登录或注册