# How to access a cell array using loops?

14 views (last 30 days)
I have a cell array A who's dimensions is in multiples of 8. For ex 1x192 , now i want to pick the elements of the cell array in the following way.
1,9,17,25...nth elements should be stored it in a separate cell array. similarly 2,10,18,26..n in a separate cell array and another set would be 3,11,19,27..n in a separate cell array. this must be continued till 8,16,24,32..
How can i automate this, where the cell array size is dynamic. But it is always a multiple of 8.
Any help would be appreciated thanks

Stephen Cobeldick on 18 Apr 2018
Edited: Stephen Cobeldick on 18 Apr 2018

Storing data in lots of separate variables should be avoided, read this to know why:

The simplest solution would be for you to reshape your array into a matrix and access its rows/columns:

```C = cell(1,192) % your cell array
M = reshape(C,8,[]);
```

then accessing the data that you require is trivial using basic MATLAB indexing:

```M(1,:) % 1, 9,17,...
M(2,:) % 2,10,18,...
...
M(8,:) % 8,16,24,...
```

Note that you can easily access the data in a loop:

```for k = 1:8
M(k,:)
end
```

or split it into a cell array of cell arrays using num2cell.

DEEPAK PHCSFI17041149 on 20 Apr 2018
Great Use of Re-Use function, thanks much Stephen.