It's better to use Cell Array when:
You have different types in your array.
You are not sure whether in the future you might extend it to another type.
You are working with objects that have an inheritance pattern.
You are working with an array of strings - almost on any occasion it is preferable to char(n,m).
You have a large array, and you often update a single element in a function.
You are working with function handles.