How to access a cell array using loops?

4 次查看(过去 30 天)
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

采纳的回答

Stephen23
Stephen23 2018-4-18
编辑:Stephen23 2018-4-18

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.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by