Filter löschen
Filter löschen

How to access a cell array using loops?

2 Ansichten (letzte 30 Tage)
DEEPAK PHCSFI17041149
DEEPAK PHCSFI17041149 am 18 Apr. 2018
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

Akzeptierte Antwort

Stephen23
Stephen23 am 18 Apr. 2018
Bearbeitet: Stephen23 am 18 Apr. 2018

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

https://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval

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.

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by