Generare vettore matlab

thedarkhero
Vorrei generare un vettore dove l'i-esimo elemento è $2^i$.
Avevo pensato ad un ciclo for ma non mi convinceva pienamente...come posso fare?

Risposte
apatriarca
Immagino che il modo più semplice sia qualcosa come:
2.^(1:n)

thedarkhero
Grazie!
Quindi $(2k-1)*pi/(2n)$ al variare di $k$ tra $1$ e $n$ si scrive?
theta=(2*(1:1:n)-1)*pi/(2*n);
x=cos(theta);

In quali casi si usa il punto?

apatriarca
Il punto serve per indicare che una qualche operazione è effettuata su ogni singolo componente separatamente. Per esempio, se A e B sono matrici, allora A*B è il prodotto nell'algebra delle matrici mentre A.*B è la matrice i cui elementi sono il prodotto degli elementi di A e B. Quando c'è uno scalare questo viene automaticamente promosso ad essere della dimensione corretta e avrà tutti gli elementi uguali allo scalare. Quindi A + 3 o A .+ 3 sono la stessa matrici (in quando la somma è già definita su ogni singolo elemento). Nel tuo caso hai uno scalare elevato un vettore e non è possibile. Quello che devi avere è un vettore elevato componente per componente rispetto ad un altro vettore e, sfruttando la promozione automatica degli scalari, si ottiene usando l'operazione con il punto. Quindi è
theta = (2.^(1:n) - 1) * pi/(2^n);
x = cos(theta);

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.