If array is a 1000-by-3 cell array, then you already know how to do it (here I'll use a 10-by-3 cell array):
array = mat2cell(char(randi(26,10,15)-1+'A'),ones(10,1),[5 5 5]);
disp(array);
{'PVCXI'} {'ZNTRT'} {'TSOZI'}
{'KGKDP'} {'LDZKJ'} {'QEUIN'}
{'LEFNA'} {'KKHYG'} {'XWEKS'}
{'MXUUO'} {'KKODQ'} {'UQYZO'}
{'OCZJK'} {'LKTBV'} {'DLDUU'}
{'NDXWY'} {'ITHAE'} {'DFDHJ'}
{'NRREZ'} {'LLRFH'} {'WKSJG'}
{'BRKWE'} {'BRULF'} {'RALHF'}
{'HNTDE'} {'QYBCZ'} {'IGFCE'}
{'VVNNJ'} {'QSGME'} {'JYBVR'}
array_temp = cell(n_rows,1);
array_temp(i,1) = array(i,2);
disp(array_temp);
{'ZNTRT'}
{'LDZKJ'}
{'KKHYG'}
{'KKODQ'}
{'LKTBV'}
{'ITHAE'}
{'LLRFH'}
{'BRULF'}
{'QYBCZ'}
{'QSGME'}
But a for loop is not necessary:
disp(array_temp);
{'ZNTRT'}
{'LDZKJ'}
{'KKHYG'}
{'KKODQ'}
{'LKTBV'}
{'ITHAE'}
{'LLRFH'}
{'BRULF'}
{'QYBCZ'}
{'QSGME'}
On the other hand, if array is a 1000-by-1 cell array with each element being a 1-by-3 cell array (again, using size 10 instead of 1000 for demonstration), you can do it with a for loop like this:
array = num2cell(array,2);
disp(array);
{1×3 cell}
{1×3 cell}
{1×3 cell}
{1×3 cell}
{1×3 cell}
{1×3 cell}
{1×3 cell}
{1×3 cell}
{1×3 cell}
{1×3 cell}
array_temp = cell(n_rows,1);
array_temp(i,1) = array{i}(2);
disp(array_temp);
{'ZNTRT'}
{'LDZKJ'}
{'KKHYG'}
{'KKODQ'}
{'LKTBV'}
{'ITHAE'}
{'LLRFH'}
{'BRULF'}
{'QYBCZ'}
{'QSGME'}
But again, an explicit for loop is not necessary:
array_temp = cellfun(@(x)x{2},array,'UniformOutput',false);
disp(array_temp);
{'ZNTRT'}
{'LDZKJ'}
{'KKHYG'}
{'KKODQ'}
{'LKTBV'}
{'ITHAE'}
{'LLRFH'}
{'BRULF'}
{'QYBCZ'}
{'QSGME'}
If array is of some form besides one of these two, please post an example.