2012-02-09 13 views
6

Mam listę w Mathematica i próbuję uzyskać każdy inny numer z listy i zapisać go jako nową listę.Jak zdobyć każdy inny element na liście?

Obecnie mam

ReadList["file",Number] 

który odczytuje całą listę, { x1, x2, x3, x4, ... }; Chcę tylko wybrać każdy inny numer i zapisać go na nowej liście, np. { x1, x3, x5, ... }.

Jak to zrobić?

Odpowiedz

8

Spróbuj:

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}] 

Zarówno podać:

{a,c,e,g}  
+2

Albo nieco krótsza 'yourlist [[1 ;; ;; 2]] ". –

+0

@Brett, rzeczywiście! – kglr

+0

Dziękuję bardzo, Czy wiesz również, jak zmienić rozmiar kroku dla polecenia "ListPlot". Wymienia w jednostkowych krokach i zastanawiał się, czy istnieje sposób, aby to zmienić? Jeszcze raz dziękuję za pomoc! – user1200775

1

Do zadań takich, które nie zawsze są dziesiątki twórczych sposobów, aby to zrobić w Mathematica. kguler już dał ci kanoniczne sposoby, ale tutaj jest jeszcze jeden:

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

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

Nawiasem mówiąc: Jest dedykowana strona Mathematica Stack Exchange Network w https://mathematica.stackexchange.com/. Społeczność Mathematica porusza się coraz bardziej w tym kierunku, więc być może zechcesz także dołączyć do nas.

+0

Och, dziękuję za referencję! – user1200775

1

Jeszcze jeden sposób:

First /@ ReadList["test.dat", {Number, Number}] 
Powiązane problemy