八度/ Matlab:扩展向量使其自身重复吗?


93

有没有办法通过使向量重复自身来扩展向量?

>v = [1 2];
>v10 = v x 5; %x represents some function. Something like "1 2" x 5 in perl

那么v10将是:

>v10
     1 2 1 2 1 2 1 2 1 2

这应该适用于一般情况,而不仅仅是[1 2]


您可以使用kron-Kroencker产品操作员。例如v=[1 2]v100=kron(ones(1,100),v)是向量v100=[v v ... v](100次)。如果您想将某些列向量y与其自身K时间串联起来,请使用yK=kron(ones(K,1),y)
Pantelis Sopasakis

Answers:



6

如果知道要向哪个方向扩展向量,显然repmat是可行的方法。

但是,如果您希望始终在最长的方向上重复向量的一般解决方案,则repmat和索引的这种结合应该可以解决问题:

 v10=v(repmat(1:length(v),1,5))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.