2012-02-09 21 views
6

Mathematica'da bir listeye sahibim ve listedeki diğer her sayıyı almaya çalışıyorum ve bunu yeni bir liste olarak saklıyorum.Her diğer öğeyi bir listede nasıl bulurum?

Şu anda var

tüm listeyi, { x1, x2, x3, x4, ... } okur
ReadList["file",Number] 

; Sadece diğer her numarayı seçip yeni bir listede saklamak istiyorum, ör. { x1, x3, x5, ... }.

Bu nasıl yapılır?

cevap

8

Dene:

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

İkisi vermek: Her zaman Mathematica bunu yapmak için yaratıcı yollar düzinelerce vardır böyle görevler için

{a,c,e,g}  
+2

ya da biraz daha kısa 'yourlist [[1 ;; ;; 2]] '. –

+0

@Brett, gerçekten! – kglr

+0

Çok teşekkür ederim, "ListPlot" Komutu için adım boyutunu nasıl değiştireceğinizi de biliyor musunuz? Birim adımlar halinde listeler ve bunu değiştirmenin bir yolu olup olmadığını merak ediyordum? Yardımınız için tekrar teşekkür ederiz! – user1200775

1

. kguler zaten size kanonik yollar verdi ama burada başka bir var: Bu arada

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

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

: https://mathematica.stackexchange.com/ bir adanmış Mathematica Stack Exchange site var. Mathematica topluluğu bu yönde gittikçe daha fazla hareket ediyor, bu yüzden bize orada da katılmak isteyebilirsiniz.

+0

Oh Referans için teşekkürler! – user1200775

1

daha yolu:

First /@ ReadList["test.dat", {Number, Number}] 
İlgili konular