Concatenating cell arrays with a different number of columns

8 次查看(过去 30 天)
I have a 64x1 cell array that looks like this, I would like to vertically concatenate the cells in this array, and pad the rows with less columns with zeros blah.PNG

采纳的回答

Guillaume
Guillaume 2019-6-13
编辑:Guillaume 2019-6-13
maxcols = max(cellfun('size', NonC_tRNAs, 2)); %get the number of columns of the widest array
padded = cellfun(@(m) [m, zeros(size(m, 1), maxcols - size(m, 2))], NonC_tRNAs, 'UniformOutput', false); %pad each array
NonC_tRNAs_Reference = vertcat(padded{:})
  7 个评论
mmfjerstad
mmfjerstad 2020-3-16
Sorry if this is a dumb question, but what is "m" in this instance?
padded = cellfun(@(m) [m, zeros(size(m, 1), maxcols - size(m, 2))], NonC_tRNAs, 'UniformOutput', false); %pad each array
Guillaume
Guillaume 2020-3-16
" what is "m" in this instance?"
An arbitrary name for the input variable of the anonymous function called by cellfun. It will be in turn each element of the same array.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by