2011-12-31 9 views
6

voglio mostrare trame all'interno di un modulo (forse ricorsiva):Mostra trame modulo all'interno di Mathematica

m = Module[{i, j}, i = 3; Plot[Sin[t], {t, 0, 1}]; j = 4] 

Anche

m = Module[{i, j}, i = 3; Show[Plot[Sin[t], {t, 0, 1}]]; j = 4] 

non funziona. Perché è questo e come tracciare correttamente?

+1

hai soppresso l'output di 'Plot' con il punto e virgola ... prova' m = Modulo [{i = 3, j = 4}, Plot [Sin [t], {t, 0, 1}]] '. Se le assegnazioni 'i' e' j' dipendono dalla posizione specifica nel blocco di codice (ad esempio, se questo è un esempio semplificato), usa 'm = Modulo [{i, j, p}, i = 3; p = Plot [Sin [t], {t, 0, 1}]; j = 4; p] ' – abcd

+2

La domanda molto simile è stata appena posta in Mathgroup" Plot in module "http://forums.wolfram.com/mathgroup/archive/2011/Dec/msg00605.html (potrebbe essere necessaria una FAQ Mathematica? ho visto questa domanda molte volte prima) – Nasser

risposta

11

L'unica ragione per una trama viene normalmente visualizzato in Mathematica è che i Plot funzione rendimenti la grafica oggetto che rappresenta la trama, e Mathematica visualizza il valore di ritorno di ciò che si esegue in un notebook. Tuttavia, quando si segue l'istruzione con un punto e virgola, si impedisce che restituisca un valore.

Cosa è possibile fare se è necessario visualizzare qualcosa dal centro di un modulo è Print[Plot[...]];. La funzione Print visualizza direttamente il valore del suo argomento.

+1

Non sapevo che Print può stampare grafici! grande! Grazie! –

+4

Penso che in questo caso il nome del comando, 'Show', suggerisca che sta facendo qualcosa di diverso da quello che fa (' Show' unisce il display a diversi oggetti 'Graphics', non li fa mostrare) –