MATLAB Answers

0

Output name same as input names but with an extra word at the end to distinguish

Asked by Gopika Rajan on 31 Aug 2019
Latest activity Commented on by Adam Danz
on 1 Sep 2019
Hello ,
I have many files in a folder . I have written a matlab code to do something. Now I am looking to save the output file with the same name as the input file but with an extra word at the end to distinguish since they are all going to be in the same folder.
Here is just an idea
Input file = A.txt
Output file = A.edited.txt
Is it possible to do this? I should also mention that the files are going to be in a folder and I want to have a loop where the code would read one file at a time, do what I want it to do and save it as a excel file with the modified input name.
Thanks

  0 Comments

Sign in to comment.

1 Answer

Answer by Adam Danz
on 31 Aug 2019
 Accepted Answer

If you're reading in a txt file and saving an excel file, you don't need to have different names but it still might be a good idea to add the "edited" tag so you can keep track of which data you're looking at.
Avoid using dots in filenames since they indicate file extensions. Underscores a better.
inputfile = 'A.txt';
[~,fname] = fileparts(inputfile);
outputfile = sprintf('%s_edited.xlsx',fname);
Result
outputfile =
'A_edited.xlsx'

  5 Comments

No, in that case, move the filename to a variable.
inputfilename = 'LEG3.txt'l
fid = fopen(inputfilename, 'r') ; % Open source file.
[~, fname] = fileparts(inputfilename);
% ^...........path to file (missing because your filename does not include a path
% ..^^^^^.....name of file
Thanks. It is working great. Could you help me with another related problem? The files are going to be in a folder and I want to have a loop where the code would read one file at a time, do what I want it to do and save it as a txt file with the modified input name(where I would be using the code you suggested.
I'm not sure what the question is. I'm guessing your quesiton is how to list each file and read it in individually.
You can use dir() to list the content of a directory. This line below, for example, reads in lists all txt files in a directory.
% chosenPath is the path to your folder
files = dir(fullfile(chosenPath, '*.txt'));
filenames = {files.name};
Then can loop through those files
for i = 1:numel(filenames)
filenames{i}
end

Sign in to comment.