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:

 채택된 답변

Guillaume
Guillaume 2016년 9월 19일
편집: Guillaume 2016년 9월 19일

1 개 추천

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.

추가 답변 (2개)

KSSV
KSSV 2016년 9월 19일

0 개 추천

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 2016년 9월 19일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

질문:

2016년 9월 19일

답변:

2016년 9월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by