2012-02-09 57 views
6

我在Mathematica中有一个列表,并且我试图获取列表中的每个其他数字并将其作为新列表存储。如何获取列表中的每个其他项目

目前我有

ReadList["file",Number] 

,其读出整个列表,{ x1, x2, x3, x4, ... };我只想挑出其他号码并将其存储在新的列表中,例如, { x1, x3, x5, ... }

如何做到这一点?

回答

8

尝试:

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

均可以得到:

{a,c,e,g}  
+2

还是稍短'yourlist [[1 ;; ;; 2]]'。 – 2012-02-09 23:05:10

+0

@Brett的确如此! – kglr 2012-02-09 23:09:59

+0

非常感谢,您是否也碰巧知道如何更改Command ListPlot的步长。它列出了单位步骤,并想知道是否有办法改变这种情况?再次感谢你的帮助! – user1200775 2012-02-09 23:44:57

1

对于像总有几十个创造性的方式来做到这一点的数学任务。 kguler已经给你的规范办法,但这里的另一个问题:

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

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

顺便说一句:有在https://mathematica.stackexchange.com/一个专门的数学Stackexchange网站。 Mathematica社区越来越朝着这个方向发展,所以你可能也想加入我们。

+0

谢谢你的参考! – user1200775 2012-02-09 23:47:04

1

另一种方式:

First /@ ReadList["test.dat", {Number, Number}] 
相关问题