2012-02-09 11 views
6

Tengo una lista en Mathematica, y estoy tratando de obtener cualquier otro número en la lista y almacenarlo como una nueva lista.Cómo obtener cada otro artículo en una lista

Actualmente tengo

ReadList["file",Number] 

el que lee en voz alta la lista completa, { x1, x2, x3, x4, ... }; Solo quiero elegir cada otro número y almacenarlo en una nueva lista, p. { x1, x3, x5, ... }.

¿Cómo hacer eso?

Respuesta

8

Probar:

yourlist = {a, b, c, d, e, f, g, h}; 
(* use Span: search for Span or ;; in Documentation Center *) 
everyotheritemlist = yourlist[[1 ;; -1 ;; 2]]; 
(* or use Take *) 
Take[yourlist, {1, -1, 2}] 

Ambos dan:

{a,c,e,g}  
+2

O el ligeramente más corto 'yourlist [[1 ;; ;; 2]] '. –

+0

@Brett, de hecho! – kglr

+0

Muchas gracias, ¿Sabría usted también cómo cambiar el tamaño del paso para el comando "ListPlot"? Enumera los pasos de la unidad, y se preguntaba si había alguna manera de cambiar esto. ¡Gracias de nuevo por tu ayuda! – user1200775

1

Para tareas como que siempre hay maneras creativas de hacerlo en Mathematica docenas. kguler ya le dio las formas canónicas, pero aquí hay otra:

Partition[yourlist, 2]\[Transpose][[1]] 

(* 
==> {a, c, e, g} 
*) 

Por cierto: Hay un sitio de Mathematica Stackexchange dedicado en https://mathematica.stackexchange.com/. La comunidad de Mathematica se mueve cada vez más en esa dirección, por lo que es posible que desee unirse a nosotros allí también.

+0

¡Gracias por la referencia! – user1200775

1

una forma más:

First /@ ReadList["test.dat", {Number, Number}] 
Cuestiones relacionadas