MATLAB: Taking a certain column from each cell with different size

cell arrays

Hi, I have some cells containing matrices with different size: for example a{1} : [1 2 3] a{2} : [1 2 3; 4 5 6; 6 7 8] a{3} : [1 2 3; 4 5 6; 7 8 9; 2 5 8; 4 5 6] Is there any "short way" that I can take second column of each matrix and merge them in a vector? number of cells and the size of matrices change with different input parameters.
thnx!
Chamran

Best Answer

a{1} = [1 2 3]
a{2} = [1 2 3; 4 5 6; 6 7 8]
a{3} = [1 2 3; 4 5 6; 7 8 9; 2 5 8; 4 5 6]
b=cell2mat(a')
out=b(:,2)
%Or
out=cell2mat(cellfun(@(x) x(:,2),a','un',0))