2010-02-27 9 views
5

In Mathematica,mathematica -creare liste e vettori di lunghezza specifica

  1. Come si crea una lista di lunghezza n e riempire con zeri?
  2. Come è possibile creare un vettore di lunghezza n e riempire con zero?
+0

In aggiunta al commento di Timo se pensi che la risposta non sia stata fornita nelle tue precedenti domande, si prega di aggiungere un commento (s) dicendo così e perché. – Davorak

+0

Davorak, Le tue risposte sono state fantastiche! Alla fine ho capito che posso eseguire il debug di mma non utilizzando prima l'istruzione del modulo, farlo funzionare e quindi utilizzare un modulo. Il modulo mi dava solo una linea arancione senza una buona diagnostica quando c'era un errore nel mio codice. Dopo aver rimosso l'intestazione del modulo e lavorato in quel modo le cose sono andate molto meglio, buona diagnostica ecc. Ho avuto circa 20 versioni del mio modulo in corso quando ho contattato StackOverflow. Avevo bisogno di ottenere la sintassi giusta. Questa esperienza ha davvero aiutato. Avevo bisogno di arrivare al punto in cui avrei potuto programmare velocemente. Grazie. MM –

risposta

3

In Mathematica, non c'è distinzione tra elenchi e vettori. È possibile utilizzare la funzione Table per generare una lista di lunghezza n:

x = Table[0, {n}] 
(* If n was 4, x would now be the list {0, 0, 0, 0} *) 
9

versione 6.0 e fino includere una nuova funzione ConstantArray per fare esattamente questo, ed è più efficiente rispetto all'utilizzo di Table:

In[2]:= ConstantArray[0,10] 
Out[2]= {0,0,0,0,0,0,0,0,0,0} 

Documentazione qui:
http://reference.wolfram.com/mathematica/ref/ConstantArray.html

+1

Ho sperimentato a lungo le liste in Mathematica, e penso che l'efficienza di 'ConstantArray' su' Table' derivi dalla possibilità di pre-calcolare e allocare la dimensione della lista. Poiché 'Table' non può sempre farlo, deve allocare come va. – rcollyer