0

質問

任意の長さの2つのベクトルがあるとします。pattern一方と他方を呼び出しましょうseriespattern今度は、繰り返しをseries自動的に追加したいと思います。

pattern通常、それはより短いと想定できますがseries、別の方法も機能する場合は便利です。この場合、の最初のいくつかの値のみをpattern使用する必要があります。

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

与えるべき

 2     4     6     5     7     9     8    10    12    11

私はこれまでに何を見つけましたか?

私は周りを検索しましたが、私が望むものを達成するためのエレガントな方法を見つけられませんでした。

  • 私が見つけた最も簡単な解決策は使用しますpadarrayが、これは利用できません
  • 私自身の解決策は、私がエレガントだとは思わないがrepmat、パターンを十分な回数繰り返してから、端をカットすることです。
4

1 に答える 1

4

repmat の代わりにインデックスを使用できます。

result = series + pattern([mod(0:(numel(series) - 1), numel(pattern)) + 1]);
于 2013-03-21T11:16:15.963 に答える