# MATLAB: Cell contents reference from a non-cell array object.

enter mathworks products that apply to this questionnon-cell array object

clc;
clear all;
vchave = [2 2 2 2 2 2]
for k = 1:6;
v{k} = vchave
v{1,k} = v{1,k}-1
v{1}{k+1} = v{1}{k+1}-1
end
I am getting error "Cell contents reference from a non-cell array object" . Please tell me how to solve this problem.

• Each cell of v contains a numeric vector. So your indexing here:
``v{1}{k+1} = v{1}{k+1}-1%   ^   ^       ^   ^ wrong type of bracekts for numeric array.``
uses the wrtong type of brackets for indexing (curly braces are used to access the elements of a container array, e.g. the elements of a cell array, table, or string). The correct brackets for accessing the elements of a numeric array are parentheses, as shown here:
``````vchave = [2,2,2,2,2,2];for k = 1:5;    v{k} = vchave    v{1,k} = v{1,k}-1    v{1}(k+1) = v{1}(k+1)-1endv = 1x1 cell array    {1×6 double}
v = 1x1 cell array    {1×6 double}
v = 1x1 cell array    {1×6 double}
v = 1x2 cell array    {1×6 double}    {1×6 double}
v = 1x2 cell array    {1×6 double}    {1×6 double}
v = 1x2 cell array    {1×6 double}    {1×6 double}
v = 1x3 cell array    {1×6 double}    {1×6 double}    {1×6 double}
v = 1x3 cell array    {1×6 double}    {1×6 double}    {1×6 double}
v = 1x3 cell array    {1×6 double}    {1×6 double}    {1×6 double}
v = 1x4 cell array    {1×6 double}    {1×6 double}    {1×6 double}    {1×6 double}
v = 1x4 cell array    {1×6 double}    {1×6 double}    {1×6 double}    {1×6 double}
v = 1x4 cell array    {1×6 double}    {1×6 double}    {1×6 double}    {1×6 double}
v = 1x5 cell array    {1×6 double}    {1×6 double}    {1×6 double}    {1×6 double}    {1×6 double}
v = 1x5 cell array    {1×6 double}    {1×6 double}    {1×6 double}    {1×6 double}    {1×6 double}
v = 1x5 cell array    {1×6 double}    {1×6 double}    {1×6 double}    {1×6 double}    {1×6 double}
``````
I strongly recommend preallocating v before the loop.