删除Mathematica表中的空值

时间:2013-08-22 22:39:34

标签: import wolfram-mathematica whitespace empty-list

我使用Import[filename, "Data"]命令从Mathematica中的某些.asc文件导入数据,并将其存储在表格中。我遇到了一个问题,有时.asc文件在文件的末尾有一些空行,导致表中的空值导致我以后遇到一些问题。

例如,当我查看data[[5 ;; (Length[data])]]时,我得到:

{{3446.05, 15.5156}, {3446.18, 14.5156}, ..., {3451.49, 7.51563}, {}, {}, {}, {}}

所以我的问题是:摆脱这些空值的最佳方法是什么?我已经研究过忽略导入中的空格,但是没有找到任何可以实现的东西。我也看了Delete,但我似乎无法得到一个与空值匹配的表达式。

我可以这样做的一种方法是将Length[data]更改为'Length [data] -4`。但是,这需要针对每个文件进行潜在的更改,我希望能够为任何文件提供更通用的解决方案,无论它们是否有空格。

2 个答案:

答案 0 :(得分:1)

如果导入的列表名为s,则可以使用:

s/.{}->Sequence[]

Select[s,Length[#]==2&]

DeleteCases[s,{}]

Partition[Flatten[s],2]

答案 1 :(得分:0)

最简单的方法是使用 DeleteCases 内置函数:

data={{1,2},{},{3,4},{}}

DeleteCases[data,{}]={{1,2},{3,4}}