I want to know what are the differences between two data structures in MATLAB: Structure Arrays and Cell Array.In what circumstances we can use each of them? 
Difference between Data structure objects and cell array objects in matlab
matlab
Both structures and cell arrays are the most flexible data types built into matlab (as opposed to creating your own class), and that flexibility comes with a price - physical memory.I'm not near a matlab-enabled machine, otherwise I would show you some examples; however, to get an idea of what I mean, create some data in matlab and then enter 'whos'. This will show you the memory usage of each data type. Cell arrays and structures are way more memory hungry than arrays, simply because you can combine different days types into a single variable (strings, booleans, numerics, etc.) Now, to your question between cell arrays and structures, this is more of a question of preference in terms of writing, editing, and later understanding your code. I like structures because naming variable fields is easier to understand when multiple people are working on a project. Cell arrays take slightly more afterthought, because everything is based on a numeric index: what was cellData{:,2} again? It's easier with a structure: structData.address(:), oh ya those were addresses. I'm a firm believer that matlab should be used so that it's as easy as possible to read and write. With bigger and more complicated projects, matlab itself becomes a bottleneck, and it would be better to write your code in another faster language. 