Matlab:扩展矩阵中每个数据的最简单/最有效的方法

时间:2013-07-24 18:44:30

标签: matlab matrix replace repeat

如果我有一个大小为P的矩阵3975 x 12,下面给出了下载链接。 P的每一列中 NaN的行数由3975/sizesBlock给出,其中sizesBlock[1 3 5 15 25 53 75 159 265 795 1325 3975]。如何替换包含NaN的所有列,以使j列中的每个数字重复sizesBlock(j)次。有没有快速/有效的方法呢?感谢。

矩阵P可以下载from here

1 个答案:

答案 0 :(得分:0)

iSeries  = 1;
for iBlock = sizesBlock
    temp = repmat(P(1:(sizesBlock(end)/iBlock), iSeries), iBlock, 1);
    temp = reshape(reshape(temp, (sizesBlock(end)/iBlock), iBlock)', sizesBlock(end), 1);
    modifiedP(:, iSeries) = temp;
    iSeries = iSeries + 1;
end