Cell contents reference from a non-cell array object.
Show older comments
why this error appear "Cell contents reference from a non-cell array object"
U = {} at first
U = TI(s).Si;
TI is strict and Si is a field of TI of cell class
sitem = unique([U{:}]);
9 Comments
Adam Danz
on 17 Dec 2019
U = {};
sitem = unique([U{:}]);
That should not produce an error. The source of the error must be something else or the example isn't accurately reflecting your variables.
Geoff Hayes
on 17 Dec 2019
Mira - U is initialized as a cell array, but then you re-initialize this to whatever Si is
U = TI(s).Si;
Perhaps you mean to do
U{1} = TI(s).Si;
Adam Danz
on 17 Dec 2019
Good eye. I missed that.
Mira le
on 17 Dec 2019
Mira le
on 17 Dec 2019
Adam Danz
on 17 Dec 2019
If TI(s).Si isn't a cell, then U won't be a cell, even if you initialize it as a cell
U = {};
U = TI(s).Si; % you're just overwriting U here
If you use Geoff's suggestions, U will remain as cell.
U = {};
U{1} = TI(s).Si;
Mira le
on 18 Dec 2019
Adam Danz
on 18 Dec 2019
I don't know what your code does. I saw your comment, "for example TI(1).Si= {2 3}" which indicates that Si is a cell array but is that always true? Maybe it is; I don't know.
Answers (0)
Categories
Find more on Data Type Identification in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!