有沒有辦法通過重複它自己來擴展向量?Octave/Matlab:擴展一個向量使其重複自己?
>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]
有沒有辦法通過重複它自己來擴展向量?Octave/Matlab:擴展一個向量使其重複自己?
>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]
顯然,如果您知道要向哪個方向擴展矢量,repmat就是要走的路。
但是,如果你想總是重複最長方向的矢量的通用解決方案,repmat和索引的這個組合應該做的伎倆:
v10=v(repmat(1:length(v),1,5))
您可以使用KRON - 該Kroencker產品運營商。例如'v = [1 2]'和'v100 = kron(ones(1,100),v)'是向量'v100 = [v v ... v]'(100次)。如果你想連接一些列向量'y'和自己'K'次,使用'yK = kron(ones(K,1),y)'。 – 2013-05-26 02:56:36