Clear Filters
Clear Filters

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)

Categories

Find more on Predict Remaining Useful Life (RUL) in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!