Non Scalar Structures
19 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi how can I save a non scalar structures. Again, I don't really know what a nonscalar structure is. I know mine is a nonscalar structure because save('filename',-struct,'structname) throws exception saying your structure is nonscalar.
I am trying to save a matrix of structures each structure has a structure inside it. does such programming increase runtime?
0 commentaires
Réponses (2)
Jan
le 16 Fév 2012
No, such programming does not necessarily increase the runtime. It can be a nice and efficient structure to represent the data. Even if it runs some seconds slower, a clear data representation can save weeks of debugging.
A non-scalar struct is something like this:
S(1,1).a = 1;
S(2,1).a = 2;
S(1,2).a = 3;
S(2,2).a = 4;
Now you have a [2x2] struct with the field 'a'. You cannot save this using the '-struct' flag, but by:
save('filename.mat', 'S');
6 commentaires
Jan
le 19 Fév 2012
Writing 5.75 GB to a disk takes some time. Do you write the MAT file in the -7.3 format (see "help save", if this is not clear)? You cannot use the faster -v6 flag for SAVE, because even the compressed file is larger than 2GB already.
If your staruct has a lot of elements (millions), consider that each element has more than 100 Bytes overhead. E.g.:
[S(1:1e4).a] = deal(1); T.a(1:1e4) = 1; whos
You have 1200064 Bytes for S and 80176 bytes for T. A struct of fields consumes less memory than a field of structs. This matters the requirements of RAM, of disk-space when using SAVE and even the processing speed depends on the internal data representation.
upol
le 10 Jan 2019
Why this gives problem in C Coder. Error: Directly accessing field or property of nonscalar struct or object not supported for code generation.
s1=string({OPS_FLT(:).ACFT_ID})
s2=OPS_FLT(2).ACFT_ID
uuindex=find(strcmpi(s1,s2))
({OPS_FLT(:).ACFT_ID}) has already been defined as
OPS_FLT(1).ACFT_ID="apple"
OPS_FLT(2).ACFT_ID="orange"
I am trying to find orange from the array. It works in Matlab but not in C Coder
0 commentaires
Voir également
Catégories
En savoir plus sur Structures dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!