|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Oct 2008
Messaggi: 12
|
Estrarre valori numerici da un ciclo for [Matlab]
Salve a tutti!
Ho un problema... Ho scritto un ciclo for che mi calcola i valori di una funzione in funzione del mio input: for T=300:50:700 bla bla bla x_finale=nf/n_totale end Ora il programma mi restituisce, per ogni T un valore di x_finale diverso. Se io ora volessi fare un grafico, non saprei come fare dato che chiedendogli di plottare(x_finale,T) questo giustamente mi disegna un punto. Quello che vorrei ottenere è una serie di punti sullo stesso grafico in modo da poter poi fare un'interpolazione ed avere una curva che approssima l'andamento di x_finale con T. In sostanza sto chiedendo se esiste un comando (suppongo da inserire all'interno del ciclo for) che dica a matlab di mettere da parte i valori di x_finale trovati per la T corrispondente di modo che poi questi possano essere inseriti tutti all'interno di un grafico. Grazie a tutti per l'aiuto!!! |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Apr 2011
Messaggi: 59
|
Ciao, non conosco matlab, ma nel tuo caso suppongo proprio ti serva un array.
Ad ogni ciclo, inserisci nell'array il valore che hai ottenuto. Codice:
valori = struct([]) i = 0 for T=300:50:700 ... ... ... x_finale=nf/n_totale valori[i] = x_finale i++ end Dopodichè, usa la funzione plot con in input questo array che hai calcolato. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: May 2006
Messaggi: 41
|
Per fare quello che vuoi devi imparare a usare il comando eval, purtroppo ora sono dal tablet e non posso incollare esempi di codice comunque ti permette di aggiungere alla tua variabile un numero finale che può variare con il ciclo... Ad esempio crei una variabile variabilei che ad ogni passaggio del ciclo salva il tuo valore. Cerca su google, non è difficile da usare!
Sent from my iPad using Tapatalk HD |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 314
|
Come ti è stato già suggerito da Efem, è sufficiente memorizzare i vari output della tua funzione in un array, come in questo esempio
Codice:
for i = 1:100
f(i) = sin(i);
end
plot(f)
__________________
Athlon64 x2 5600 - AsRock ALiveNF5eSata2+ - kingston 2GB ddr2 800 - GeForce 8800gts 320MB |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:53.



















