我使用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`。但是,这需要针对每个文件进行潜在的更改,我希望能够为任何文件提供更通用的解决方案,无论它们是否有空格。
答案 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}}