This is data matrix having 2*159 cells 在数据矩阵中有这么多列(2个向量)具有不同的长度。我想填充最小长度的零。零的数量应为
[max(length(Vector 1))-min(length(Vector 2))]
现在我想在单元格中添加最小长度的零。并且如果列的长度与没有问题相同,则希望在每列中使长度相等。
答案 0 :(得分:1)
n = max(max(cellfun(@(x)size(x,2),data)))
cellfun(@(x)[x, zeros(1,n-numel(x))], data, 'uni', 0)
以上是找到一个单一的最大值来填充细胞。我现在意识到你实际上想要按每列计算这个最大值:
n = max(cellfun(@(x)size(x,2),data))
cellfun(@(x,n)[x, zeros(1,n-numel(x))], data, repmat(num2cell(n),2,1), 'uni', 0)
此时,使用循环
可能更直观for col = 1:size(data,2)
n = max(size(data{1,col},2),size(data{2,col},2));
for row = 1:2
x = data{row,col};
data{row,col} = [x, zeros(1,n-numel(x))];
end
end