MATLAB:复制数组中的零条目

时间:2018-03-30 17:18:14

标签: matlab loops vectorization

我有一个大小为vec的大型n x 1n数字很大)。 vec中的所有值均为01。向量由大小为m的块组成,在每个块中,只包含这两个值中的一个。

为了确保这个条件,我遍历块中的每个start元素并将该值复制到相应块的所有条目中:

for i = 1:m:n
     if vec(i) == 1
          vec(i:i+m-1) = 1;
     else
          vec(i:i+m-1) = 0;
     end
end

如何在不丢失循环的情况下实现这一目标,以便更好地使用MATLABs矢量化并行化?提前致谢

1 个答案:

答案 0 :(得分:5)

您可以使用repelem

vec = repelem(vec(1:m:n), m);