Struct vs Table - which is better
156 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
Can someone tell me where i can read the pro's and con's of Structs Vs Tables
So i'm reading in data from an API, i can store it in a struct, and if i want i can also store it in a table.
Which of these two are easier to work with later on?
So i will need to do mathematical calculations, plot graphs, do use loops functions, all sorts of stuff with the data.
So i'm wondering what is going be easier to use?
What is going to be more memory efficient and speed efficient?
Your thoughts will be appreciated
0 commentaires
Réponses (3)
Image Analyst
le 29 Sep 2020
A matrix is best and fastest if you just have numbers everywhere. If you have tabular data where different columns have different data types, like col 1 is scalar numbers, col 2 is strings, and col 3 is vectors, etc. then you should use a table. Tables can have different data types in every column - double matrices cannot. But all elements of a particular column mut be the same, so can't have a double in row 1 and a string in row 2.
If you need maximum flexibility, at the cost of speed and overhead, then you can use a cell array, which has no requirements that data types match up within rows or columns. Basically with a cell array, anything can be anywhere. See the FAQ: FAQ: What is a cell array?
Structures are pretty similar to tables but are probably less efficient than a table. They are more flexible than a table though, for example one structure might have only some of the fields that another structure in the same structure array has - but it's pretty rare that you'd have that situation.
Bottom line: I recommend you become better acquainted with tables. (I assume you know everything about regular numerical matrices of course.)
0 commentaires
Voir également
Catégories
En savoir plus sur Logical 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!