如何在Matlab中向不同长度的向量添加重复模式

时间:2013-03-21 10:43:27

标签: matlab vector

问题

假设我有两个任意长度的向量。让我们调用一个pattern和另一个series。现在,我想以自动方式将重复的pattern添加到series

通常可以假设patternseries短,但如果替代方式也有效,那就太好了。在这种情况下,只应使用pattern的前几个值。

示例

pattern = 1:3;
series = 1:10;

应该给予

 2     4     6     5     7     9     8    10    12    11

到目前为止我发现了什么?

我已经四处寻找,但没有找到一种优雅的方式来实现我想要的目标。

  • 我找到的最简单的解决方案是使用padarray,但我没有这个
  • 我自己的解决方案,我认为不优雅,是使用repmat重复模式足够多次然后切割结束。

1 个答案:

答案 0 :(得分:4)

您可以使用索引而不是repmat:

result = series + pattern([mod(0:(numel(series) - 1), numel(pattern)) + 1]);