How to add Filename to all variables automatically?

2 views (last 30 days)
Hi, everyone I have 127 variable in a .mat file. I want to add filename to all variables and save them a path like "File\Filename_VariableX" automatically. Thanks a lot.

Accepted Answer

Walter Roberson
Walter Roberson on 8 Oct 2017
Assuming you want to process a whole directory like this:
projectdir = 'File'; %location to save into
if ~exist(projectdir, 'dir'); mkdir(projectdir); end
dinfo = dir('*.mat');
for fidx = 1 : length(dinfo)
filename = dinfo(fidx).name;
[~, basename] = fileparts(filename);
datastruct = load(filename);
fn = fieldnames(datastruct);
for nidx = 1 : length(fn)
varname = fn{nidx};
outvarname = [basename '_' varname];
outfilename = fullfile(projectdir, [outvarname '.mat']);
outstruct = struct( outvarname, datastruct.(varname) );
save(outfilename, '-struct', outstruct);
end
end
This preserves variable names inside the .mat files.
  3 Comments
Mert Dogan
Mert Dogan on 8 Oct 2017
Thanks a lot. Walter can i ask a question ? How can i create file in a path automatically ?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!