2011-12-31 13 views
6

que quiero mostrar parcelas dentro de un módulo (tal vez recursiva):Mostrar parcelas dentro del módulo en Mathematica

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

Incluso

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

no funciona. ¿Por qué es esto y cómo trazar correctamente?

+1

ha suprimido la salida de 'Plot' con el punto y coma ... intente' m = Module [{i = 3, j = 4}, Plot [Sin [t], {t, 0, 1}]] '. Si sus asignaciones 'i' y' j' dependen de la ubicación específica en el bloque de código (es decir, si este es un ejemplo simplificado), use 'm = Módulo [{i, j, p}, i = 3; p = Trazar [Sin [t], {t, 0, 1}]; j = 4; p] ' – abcd

+2

pregunta muy similar acaba de ser hecha en Mathgroup" Plot in module "http://forums.wolfram.com/mathgroup/archive/2011/Dec/msg00605.html (¿puede ser que necesitemos una pregunta frecuente de Mathematica?), ya que He visto esta pregunta muchas veces antes) – Nasser

Respuesta

11

La única razón por una parcela normalmente aparece en Mathematica es que los Plot función vuelve los gráficos objeto que representa la trama, y ​​Mathematica muestra el valor de retorno de lo ejecuta en un cuaderno. Sin embargo, cuando sigue la instrucción con un punto y coma, evita que devuelva un valor.

Lo que puede hacer si necesita mostrar algo desde el medio de un módulo es Print[Plot[...]];. La función Print muestra el valor de su argumento directamente.

+1

No sé Imprimir puede imprimir parcelas! ¡estupendo! ¡Gracias! –

+4

Creo que en este caso el nombre del comando, 'Show', sugiere que está haciendo algo diferente de lo que hace (' Show' combina la visualización de varios objetos 'Graphics', no hace que se muestren) –

Cuestiones relacionadas