如何在matlab中填充矩阵中的零

时间:2017-06-26 10:15:19

标签: matlab signal-processing

我有两个矩阵:finalEnergy{1,j}(i)finalZC{1,j}(i)finalEnergy{1,1}(i)1 x 611个元素,finalZC{1,1}(i)有595个元素。我必须填充finalZC{1,1}(i)以获得611个元素。如何将finalZC{i,j}的每个单元格的大小填充到finalEnergy{i,j}中单元格的大小。我的代码在

之下
for j=1:length(finalEnergy)
  for i=1:length(finalEnergy{1,j})
    if(length(finalEnergy{1,j})<length(finalZC{1,j}))

      lenFE=length(finalZC{1,j})-length(finalEnergy{1,j});

      finalEnergy{1,j})(i)=padarray(finalEnergy,lenFE,padding);
    end 
  end
end   

1 个答案:

答案 0 :(得分:0)

你的循环中有一些错误和实现错误,但这个想法是正确的。如果我理解正确的话,你不需要在这里循环i

for j=1:size(finalEnergy, 2)
    if(numel(finalEnergy{1, j})>numel(finalZC{1, j})) 
        lenFE=length(finalEnergy{1, j})-length(finalZC{1, j});  
        finalZC{1, j}=padarray(finalZC{1, j},[0 lenFE/2], 0);
    end
end

必须有一种更有效的方法来做到这一点。这也假设lenFE始终是偶数,这在您的情况下是正确的。我可能稍后编辑这个答案,以提出一个更通用的解决方案..