Cell contents reference from a non-cell array object.

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 Commenti

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.
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;
Good eye. I missed that.
I mean U = TI(1).Si I replace s by 1
ans Si ={} is a field of struct TI
for example TI(1).Si= {2 3}
The problem is to the left of the equal sign, not the right. See Geoff's comment again.
U = TI(s).Si;
it depend on the cells in TI(s).Si
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;
but Si is cell, how it won't be cell
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.

Accedi per commentare.

Risposte (0)

Categorie

Prodotti

Release

R2017a

Richiesto:

il 17 Dic 2019

Commentato:

il 18 Dic 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by