how to split a member of cell array

조회 수: 1 (최근 30일)
Sara
Sara 2018년 10월 1일
답변: the cyclist 2018년 10월 1일
I have a cell array of 100*1 and each member has the size of 5*700. what I want to do is split each member to 5 member of 1*700. So my output will be a cell number of 500*1 (5*100) and each member has the size of 1*700. I hope that I could clarify what I want to do.
thanks a lot
  댓글 수: 2
the cyclist
the cyclist 2018년 10월 1일
What class of object is the 5*700 contents of each cell? Is it a numeric array, another cell array, or something else?
Sara
Sara 2018년 10월 1일
hello, It is numeric array.

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

채택된 답변

Jan
Jan 2018년 10월 1일
% Create some input data for testing ("InCell" is your input):
InCell = cell(100, 1);
for k = 1:100
InCell{k} = rand(5, 700);
end
OutCell = cell(500, 1);
a = 1;
b = 1;
for k = 1:500
OutCell{k} = InCell{a}(b, :);
b = b + 1;
if b > 5
a = a + 1;
b = 1;
end
end
This is the simply way using loops. Smarter:
Tmp = cat(1, InCell{:});
OutCell = num2cell(Tmp, 2);
  댓글 수: 1
Sara
Sara 2018년 10월 1일
Dear Jan,
Thanks for your help

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

추가 답변 (1개)

the cyclist
the cyclist 2018년 10월 1일
Another version of the loop, that is a little bit more intuitive to me:
OutCell = cell(500, 1);
for nc = 1:100
for nd = 1:5
OutCell{5*(nc-1)+nd} = InCell{nc}(nd,:);
end
end

카테고리

Help CenterFile Exchange에서 Data Type Identification에 대해 자세히 알아보기

제품


릴리스

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by