A struct is a mlist with a field 'dims' which gives the ability to define struct array. For example:
d=mlist(['st' 'dims' 'a' 'b'], [1 2], list(zeros(2,3), ones(3,4)), list(2*ones(4,5), 3*ones(6,7)))
d(1) is a struct: a=>zeros(2,3) & b=>2*ones(4,5)
d(2) is a struct: a=>ones(3,4) & b=>3*ones(6,7)
It should be possible to have something like:
d=mlist(['st' 'dims' 'a' 'b'], [1 2], [2 3], [4 5])
d(1) is a struct: {a:2, b:4}
d(2) is a struct: {a:3, b:5}
and d.a = [2 3], d.b = [4 5]
It is equivalent to mlist(['st' 'dims' 'a' 'b'], [1 2], list(2,3), list(4,5)) but that avoids to transform a data array into a list and vice & versa.
So in an array of structs with the same fields and same fields data type, lists should be replaced by column matrices. It could be very useful with large datasets.