主题:如何在函数中将输入的文件名改成另一文件名
gslyd
[专家分:1300] 发布于 2007-11-03 11:17:00
各位高手:我在编制一个函数时,遇到须将一个外部输入的函数aaa(自定义的函数,如aaa.m)的文件名更改为一个指定的m文件(因程序中的其他子程序也需用该函数,eg:bbb.m),试了几种方法如:!copy [aaa,'.m'] !rename, save 等都无法通行。不知能否在matlab下实现。望知情者告知,不胜感激!
回复列表 (共7个回复)
沙发
ricckma [专家分:370] 发布于 2007-11-04 03:25:00
比较笨的方法,读取源文件写入新文件,试试吧
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);
板凳
gslyd [专家分:1300] 发布于 2007-11-04 08:01:00
非常感谢!我先试试能否可行,再向 Ric报告结果。
3 楼
gslyd [专家分:1300] 发布于 2007-11-04 08:22:00
似乎不可行。其原因是oldname不是固定的,它由外部输入(有任何可能性)。若是固定的文件名,用save, rename, copy 等都行。
4 楼
ricckma [专家分:370] 发布于 2007-11-04 10:16:00
哦,那个函数是如何进入你的程序的,用户输入?
5 楼
gslyd [专家分:1300] 发布于 2007-11-04 10:50:00
自定义函数的文件名作为一个通用函数的一个输入项
6 楼
ricckma [专家分:370] 发布于 2007-11-04 11:24:00
不太明白,如果把函数改为接受两个参数的 rename(‘oldname’,‘newname’),,在输入函数的名称确定之后,调用这个函数改,不可以吗
7 楼
gslyd [专家分:1300] 发布于 2007-11-04 15:23:00
我们自己使用该函数,就是实现这样做的(事先拷贝、改名字等)。但作为一个通用型的函数,应根据使用者自编的函数,输入、识别并调用。
我来回复