[MATLAB] Creazione di un vettore
Sto cercando di imparare a usare matlab ma incontro un po' di problemi.
In pratica ho creato un programma che dovrebbe trovare il minimo di una funzione in due variabili, questo programma mi crea una successione di punti $x_k$ in $\mathbb{R}^2$ che convergono al punto di minimo.
Ora io dovrei plottare questa successione, ma come posso fare?
Il problema è che devo tenere questa successione di punti in memoria, allora mi era venuto in mente di creare due vettori $x, y$, dove $x$ contiene le ascisse di questi $x_k$ e $y$ le ordinate.
Solo che io all'inizio non so quante iterazioni ci vogliono per raggiungere il minimo, quindi non so quanto devono essere lunghi i miei vettori.
E' possibile creare un vettore senza specificare la dimensione?
Grazie
In pratica ho creato un programma che dovrebbe trovare il minimo di una funzione in due variabili, questo programma mi crea una successione di punti $x_k$ in $\mathbb{R}^2$ che convergono al punto di minimo.
Ora io dovrei plottare questa successione, ma come posso fare?
Il problema è che devo tenere questa successione di punti in memoria, allora mi era venuto in mente di creare due vettori $x, y$, dove $x$ contiene le ascisse di questi $x_k$ e $y$ le ordinate.
Solo che io all'inizio non so quante iterazioni ci vogliono per raggiungere il minimo, quindi non so quanto devono essere lunghi i miei vettori.
E' possibile creare un vettore senza specificare la dimensione?
Grazie
Risposte
Hai due soluzioni:
1. Definire un numero massimo di iterazioni e usare questo valore per dimensionare i tuoi vettori.
2. Inserire valori al di fuori dei limiti dell'array ne incrementa la dimensione per cui puoi semplicemente continuare ad inserire valori e l'array cambierà dimensione automaticamente. Nota che questa è la soluzione più lenta..
1. Definire un numero massimo di iterazioni e usare questo valore per dimensionare i tuoi vettori.
2. Inserire valori al di fuori dei limiti dell'array ne incrementa la dimensione per cui puoi semplicemente continuare ad inserire valori e l'array cambierà dimensione automaticamente. Nota che questa è la soluzione più lenta..
Grazie mille per l'attenzione.
Per quanto riguarda la soluzione 1.
io il numero massimo di iterazioni lo fisso, però il programma potrebbe terminare anche prima di quel numero massimo di iterazioni, e quindi in quel caso potrei assegnare a tutti i posti mancanti dell'array il valore trovato nell'ultima iterazione.
Per quanto riguarda la soluzione 2.
io quindi posso generare un vettore con per esempio 1 elemento solo con il comando
V=zeros(1,1)
e poi prolungarlo fino a quanto voglio assegnando V(2,1), V(3,1),...... giusto?
Grazie davvero per l'aiuto!
Per quanto riguarda la soluzione 1.
io il numero massimo di iterazioni lo fisso, però il programma potrebbe terminare anche prima di quel numero massimo di iterazioni, e quindi in quel caso potrei assegnare a tutti i posti mancanti dell'array il valore trovato nell'ultima iterazione.
Per quanto riguarda la soluzione 2.
io quindi posso generare un vettore con per esempio 1 elemento solo con il comando
V=zeros(1,1)
e poi prolungarlo fino a quanto voglio assegnando V(2,1), V(3,1),...... giusto?
Grazie davvero per l'aiuto!
Sì, puoi farlo. Puoi anche scrivere un singolo indice se il vettore ha una sola dimensione..
Grazie davvero, mi sei stato\a di grande aiuto.
Ora ci provo, nel caso avessi di nuovo difficoltà tornerò a scrivere.
Grazieee!
Ora ci provo, nel caso avessi di nuovo difficoltà tornerò a scrivere.
Grazieee!