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?

 Akzeptierte Antwort

Daniel Shub
Daniel Shub am 5 Aug. 2011

2 Stimmen

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 Kommentar

Albert Lu
Albert Lu am 24 Apr. 2017
Just to point out a small typo here. The last line should be save('newmymat.mat', '-struct', 'x');

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Produkte

Gefragt:

am 5 Aug. 2011

Kommentiert:

am 24 Apr. 2017

Community Treasure Hunt

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

Start Hunting!

Translated by