Saving to .mat without additional struct.
42 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Gabriel ROUX
il 8 Lug 2022
Commentato: Steven Lord
il 8 Lug 2022
I have that structure
test =
struct with fields:
F0: 243000
I: [3×3 double]
I_1: [3×3 double]
I_X: 5550000
I_XZ: 33000
%[...]
m: 160000
that i want to save 'as it is'
uisave('test')
I save it as name ('test2'), i load it back and i go this
aircraftdata = load('test2.mat')
aircraftdata =
struct with fields:
test: [1×1 struct]
What i want is a structure like this :
aircraftdata =
struct with fields:
F0: 243000
I: [3×3 double]
I_1: [3×3 double]
I_X: 5550000
I_XZ: 33000
%[...]
m: 160000
The whole point is saving the structure untouched and load it with a new name
0 Commenti
Risposta accettata
Steven Lord
il 8 Lug 2022
When you save the struct array, specify the '-struct' option. This will save each of the struct fields separately in the MAT-file. When you call load with an output argument, each of those separate pieces of data from the MAT-file will become fields of the new struct.
S = struct('theAnswer', 42, 'magicMatrix', magic(5), 'nephews', ["Huey", "Dewey", "Louie"])
cd(tempdir)
name = 'temporaryMatfile.mat';
save(name, '-struct', 'S')
whos('-file', name) % Individual variables
data = load(name)
Compare with:
name2 = 'otherTemporaryMatfile.mat';
save(name2, 'S')
whos('-file', name2) % The struct was stored intact
data = load(name2)
data.S
2 Commenti
Steven Lord
il 8 Lug 2022
I don't believe uisave offers the '-struct' option. You could try using a different tool, like uiputfile, to select the file to which you want to save. Once you have the file name and path information, use fullfile to construct the fully qualified name and pass name that into save.
Più risposte (2)
Vedere anche
Categorie
Scopri di più su Develop Apps Using App Designer in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!