Generare vettore matlab
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?
Avevo pensato ad un ciclo for ma non mi convinceva pienamente...come posso fare?
Risposte
Immagino che il modo più semplice sia qualcosa come:
2.^(1:n)
Grazie!
Quindi $(2k-1)*pi/(2n)$ al variare di $k$ tra $1$ e $n$ si scrive?
In quali casi si usa il punto?
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?
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);