我在Matlab中遇到以下问题。 我用这一行打开一个现有文件:
fileID = fopen(filename,'r');
然后我用这一行创建一个新文件:
fid=fopen('output.txt','w');
这很好用。问题是,我不希望它被称为“输出”。我想使用原始文件名并在其中添加一些字符串来调用它,如下所示:“filename_new.txt”。无论原始文件是什么,输出文件也必须是.txt文件。 我知道我可以使用以下命令将原始文件的名称变为字符串:
[pathstr, name, ext] = fileparts(filename)
但我不知道从那里去哪里。 总而言之,新文件应该被称为“name_new.txt”。 我觉得这对你们来说要么微不足道,要么你们会告诉我这种方式实际上是不可能的。无论哪种方式,我都会感激任何帮助。
答案 0 :(得分:1)
你可以试试这个:
filename_out = [filename(1:end-4),'_new.txt'];
fid=fopen(filename_out,'w');
filename(1:end-4)
是一种快速简便的删除.txt
结尾的方法。如果你知道它们都是txt文件,那就足够了。
使用[]
,您可以合并两个字符串,在这种情况下附加_new.txt
答案 1 :(得分:1)
http://www.mathworks.com/help/matlab/ref/fullfile.html
然后尝试
f = fullfile(pathstr, strcat(name,'_new.',ext))
答案 2 :(得分:0)
%% Rename whole *copy.png -> .png by JYJ
root_dir = '/Users/Yoojeong/Desktop/stims/png';
%retrieve the name of the files only
listdir = dir(fullfile(root_dir, '*.png'));
% i = 1;
for i = 1:length(listdir)
[pathname, filename, extention] = fileparts(listdir(i).name);
%the new name
newFilename = [filename(1:end-5),'.png'];
movefile(fullfile(root_dir, listdir(i).name), fullfile(root_dir,newFilename))
end