To combine different cells with empty columns together

2 Ansichten (letzte 30 Tage)
yue ishida
yue ishida am 5 Jul. 2017
Bearbeitet: Andrei Bobrov am 5 Jul. 2017
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?

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 5 Jul. 2017
Bearbeitet: Andrei Bobrov am 5 Jul. 2017
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

Weitere Antworten (1)

KL
KL am 5 Jul. 2017
Bearbeitet: KL am 5 Jul. 2017
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]

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by