rename workspace variables

23 views (last 30 days)
Joris
Joris on 5 Aug 2011
Commented: Albert Lu on 24 Apr 2017
I have two .mat's that each have a list of vectors with the same name. I want to rename the variables of the first .mat to originalname_Ref, and then save all vectors in one .mat. But how do I change the names of the workspace vectors?

Accepted Answer

Daniel Shub
Daniel Shub on 5 Aug 2011
When you load the .mat file, load it to a variable:
x = load('mymat.mat');
names = fieldnames(x)
for iname = 1:length(names)
x.(['new_', names{iname}]) = x.(names{iname});
x = rmfield(x, names{iname});
end
save('newmymat.mat', '-struct', 's');
  1 Comment
Albert Lu
Albert Lu on 24 Apr 2017
Just to point out a small typo here. The last line should be save('newmymat.mat', '-struct', 'x');

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!