How to access a cell array using loops?

조회 수: 4 (최근 30일)
DEEPAK PHCSFI17041149
DEEPAK PHCSFI17041149 2018년 4월 18일
댓글: DEEPAK PHCSFI17041149 2018년 4월 20일
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.

  댓글 수: 1
DEEPAK PHCSFI17041149
DEEPAK PHCSFI17041149 2018년 4월 20일
Great Use of Re-Use function, thanks much Stephen.

댓글을 달려면 로그인하십시오.

추가 답변 (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