combine celle array of cell array vertically

Hi, I have a cell arrays of cell array 'ABC'. Rows of ABC represent data from different experiment. Columns of ABC represent different type of measurement for experiments. for example columns 1 is the time stamp of each sample. at the moment i have a m*n cell array of cell array. I want to concatenate ABC so i end up with a cell array of cell array with a dimension of 1*n. Any ideas? I used
vertcat(ABC{:})
but it concatenates the all data into 1 colunm, i want to keep my colunms... Cheers
Screen capture:

 Akzeptierte Antwort

Guillaume
Guillaume am 19 Sep. 2016
Bearbeitet: Guillaume am 19 Sep. 2016

1 Stimme

This
cellfun(@(col) vertcat(col{:}), num2cell(ABC, 1), 'UniformOutput', false)
or
arrayfun(@(col) vertcat(ABC{:, col}), 1:size(ABC, 2), 'UniformOutput', false)
will do what you ask. The 2nd one may be faster.

Weitere Antworten (2)

KSSV
KSSV am 19 Sep. 2016

0 Stimmen

You can use reshape to convert your mxn cell array into any desired size. As you want to convert it to column. Use:
A = reshape(ABC,[],1) ; % 1 specifies the column, [] matlab decides the number of rows (=m*n)
Mederic Mainson
Mederic Mainson am 19 Sep. 2016

0 Stimmen

Thanks both of you guys, it both solution work, but i prefer Guillaume's one, it takes only 1 lines ;) cheers Medie

Kategorien

Mehr zu Matrices and Arrays finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by