Domanda

C'è un modo per estendere un vettore, rendendo ripete?

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

Poi v10 potrebbe essere:

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

Questo dovrebbe funzionare per il caso generale, non solo per [1 2]

È stato utile?

Soluzione

La funzione che stai cercando è repmat() .

v10 = repmat(v, 1, 5)

Altri suggerimenti

Ovviamente repmat è la strada da percorrere se si sa in quale direzione si desidera espandere il vettore.

Tuttavia, se si desidera una soluzione generale che si ripete sempre il vettore nella direzione più lunga, questa combinazione di repmat e indicizzazione dovrebbe fare il trucco:

 v10=v(repmat(1:length(v),1,5))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top