4

我正在使用该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]​​为“长度 [数据]-4”。但是,这需要为每个文件进行潜在的更改,我更喜欢一种更通用的解决方案,适用于任何文件,无论它们是否有空格。

4

2 回答 2

1

如果您的导入列表被调用s,您可以使用:

s/.{}->Sequence[]

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

DeleteCases[s,{}]

Partition[Flatten[s],2]
于 2013-08-23T00:02:52.767 回答
0

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

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

DeleteCases[data,{}]={{1,2},{3,4}}
于 2015-09-30T15:27:50.287 回答