Matlab - 使用现有文件中的部分文件名命名新文件

时间:2013-04-30 19:44:04

标签: matlab filenames

我在Matlab中遇到以下问题。 我用这一行打开一个现有文件:

fileID = fopen(filename,'r');

然后我用这一行创建一个新文件:

fid=fopen('output.txt','w');

这很好用。问题是,我不希望它被称为“输出”。我想使用原始文件名并在其中添加一些字符串来调用它,如下所示:“filename_new.txt”。无论原始文件是什么,输出文件也必须是.txt文件。 我知道我可以使用以下命令将原始文件的名称变为字符串:

[pathstr, name, ext] = fileparts(filename) 

但我不知道从那里去哪里。 总而言之,新文件应该被称为“name_new.txt”。 我觉得这对你们来说要么微不足道,要么你们会告诉我这种方式实际上是不可能的。无论哪种方式,我都会感激任何帮助。

3 个答案:

答案 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