To combine different cells with empty columns together

조회 수: 2 (최근 30일)
yue ishida
yue ishida 2017년 7월 5일
편집: Andrei Bobrov 2017년 7월 5일
Hi. I want to combine three different cells in a cell with additional empty columns..
funct1 =
'Q7'
'Q12F'
'Q12G'
'Q12H'
'Q12I'
'Q12L'
'Q12M'
funct2 =
'Q12G'
'Q12H'
'Q12I'
'Q12L'
'Q12M'
funct3 =
'Q12G'
'Q12H'
'Q12I'
Final cell will become like this.
funct =
'Q7' [] 'Q12G' [] 'Q12G' []
'Q12F' [] 'Q12H' [] 'Q12H' []
'Q12G' [] 'Q12I' [] 'Q12I' []
'Q12H' [] 'Q12L' [] [] []
'Q12I' [] 'Q12M' [] [] []
'Q12L' [] [] [] [] []
'Q12M' [] [] [] [] []
Could anyone show me how?

채택된 답변

Andrei Bobrov
Andrei Bobrov 2017년 7월 5일
편집: Andrei Bobrov 2017년 7월 5일
fu ={{
'Q7'
'Q12F'
'Q12G'
'Q12H'
'Q12I'
'Q12L'
'Q12M'};
{'Q12G'
'Q12H'
'Q12I'
'Q12L'
'Q12M'};
{ 'Q12G'
'Q12H'
'Q12I'}};
n = cellfun(@numel,fu);
m = max(n);
k = numel(n);
ou = zeros(m*2*k,1);
n1 = n + 2*(0:k-1)'*m;
n0 = n1 - n + 1;
ou(n0) = 1;
ou(n1+1) = -1;
lo = cumsum(ou);
out = cell(m,2*k);
out(lo > 0) = cat(1,fu{:});
or
n = cellfun(@numel,fu);
m = max(n);
k = numel(n);
out = cell(m,2*k);
for ii = 1:k
out(1:n(ii),2*ii-1) = fu{ii};
end

추가 답변 (1개)

KL
KL 2017년 7월 5일
편집: KL 2017년 7월 5일
funct1 = {'Q7';'Q12F';'Q12G';'Q12H';'Q12I';'Q12L';'Q12M'};
funct2 = {'Q12G';'Q12H';'Q12I';'Q12L';'Q12M'};
funct3 = {'Q12G';'Q12H';'Q12I'};
funct0 = cell(size(funct1));
funct2{length(funct1)}= [];
funct3{length(funct1)}= [];
functt = [funct1 funct0 funct2 funct0 funct3 funct0]

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by