Matlab coder logical indexing structs
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I currently have a struct defined as such,
struct(1).a
struct(2).a
struct(3).a
...
struct(N).a
where the field a is a 3x3 matrix. When I'm attempting to convert Matlab code to C through the code I run into the follwing error when trying to access the above struct through a logical index, lg.
What I'm attempting:
b = blkdiag(struct(lg).a);
Error I get:
"Directly accessing field or property of nonscalar struct or object not supported for code code generation."
I'm not fully understanding the error. Furthermore isn't 'struct' a scalar struct in this case. Note: 'struct' does have other fields that are matrices, scalars and logicals as well.
2 commentaires
Stephen23
le 18 Fév 2020
Modifié(e) : Stephen23
le 18 Fév 2020
"I currently have a struct defined as such,"
struct(1).a
struct(2).a
struct(3).a
...
struct(N).a
Hopefully you do NOT have a structure named struct. That would be a very unfortunate name for a structure, as it would shadow the inbuilt struct function.
"Furthermore isn't 'struct' a scalar struct in this case."
Only if N==1. If N~=1 then the structure is non-scalar.
Just like any other array, a scalar structure has size 1x1x1x1x1x1...
If N~=1, then regardless of what dimension it corresponds to, the structure cannot be scalar.
Note: the number of fields a structure has is completely independent of its size.
Réponses (0)
Voir également
Catégories
En savoir plus sur Structures dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!