0

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

fileID = fopen(filename,'r');

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

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

这工作得很好。问题是,我不希望它被称为“输出”。我想使用原始文件名来调用它并向它添加一些字符串,例如:“filename_new.txt”。输出文件也必须是 .txt 文件,无论原始文件是什么。我知道我可以使用以下方法将原始文件的名称转换为字符串:

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

但我不知道从那里去哪里。所以总结起来,新文件应该叫做“name_new.txt”。我有一种感觉,这对你们来说要么是微不足道的,要么你会告诉我这实际上是不可能的。无论哪种方式,我都会很感激任何帮助。

4

3 回答 3

1

http://www.mathworks.com/help/matlab/ref/fullfile.html

那就试试

f = fullfile(pathstr, strcat(name,'_new.',ext))

于 2013-04-30T19:52:56.873 回答
1

你可以试试这个:

filename_out = [filename(1:end-4),'_new.txt'];  
fid=fopen(filename_out,'w');

filename(1:end-4)是删除.txt结尾的快速简便的方法。如果你知道这都是 txt 文件,这就足够了。
使用[]您可以组合两个字符串,在这种情况下附加一个_new.txt

于 2013-04-30T19:51:52.103 回答
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
于 2016-11-05T12:57:57.760 回答