2013-03-21 25 views
0

问题如何在Matlab

假设添加的重复图案具有不同的长度,以矢量I具有任意长度的两个向量。让我们打电话一个pattern和另一个series。现在我想以自动方式将我的重复pattern添加到我的series

通常人们可以认为patternseries短,但如果替代方式也有效,它会很好。在这种情况下,应该使用pattern的前几个值。

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

应该给

2  4  6  5  7  9  8 10 12 11 

我有什么发现这么远?

我已经搜索周围,但没有找到一个优雅的方式来实现我想要的东西。

  • 我发现最简单的解决方案使用padarray,但是我没有这个可用
  • 我自己的解决方案,我不认为是优雅的,使用repmat重复图案的次足量然后切割结束。

回答

4

你可以使用索引,而不是repmat的:

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

肯定符合标准,我很好奇,看看是否有人能提供替代方案。 – 2013-03-21 14:13:16