matlab - CSVIMPORT函数不能用于巨大的CSV?

时间:2015-05-15 00:01:38

标签: matlab csv import csv-import

所以我使用了this CSVIMPORT功能,我试图导入一个如下所示的CSV文件:

    2014-6-06 08:03:19, 439105, 1053224, Front Entrance
    2014-6-06 09:43:21, 439105, 1696241, Main Exit
    2014-6-06 10:01:54, 1836139, 1593258, Back Archway
    2014-6-06 11:34:26, 845646, external, Exit 
    2014-6-06 04:45:13, 1464748, 439105, Side Exit

等948739行。基本上,第2列和第3列代表了人们的观点。 ID号,它描述了在一个事件中从一个人到另一个人的呼叫(例如439105呼叫1053224)。每当有人在活动之外打电话给某人时,他们的身份证会显示为"外部"。

我只需要导入第2列和第3列(例如439105和1053224)。问题是我只能让我的代码工作在一个小的csv文件大小而不是一个大的...并且根据this问题,一个超过一百万行的csv文件工作。

根据文件:

  

[C1 C2 C3] = CSVIMPORT(fileName,' columns',{' C1',' C2',C3'},... )       这个表单分别从输出变量C1,C2和C3中的列返回数据       列名称区分大小写,并且必须与文件中的列名完全匹配。抓取时       列模式下的数据输出列的数量必须与要读取的列数相匹配       必须是一个。在后一种情况下,来自列的数据作为单个单元矩阵返回。

     

[C1 C2 C3] = CSVIMPORT(fileName,' columns',[1,3,4] ,,' noHeader',true,...)       这个表单分别从输出变量C1,C2和C3中的列返回数据       当' noHeader'时,columns参数必须包含列索引。选项设置为true。

所以我用过这个:

[C2 C3] = csvimport('hugeCSV.csv','columns',2:3,'noHeader',true) 

使用较小的测试csv文件,打印出如下内容:

    C2 =

  439105
  439105
  439105
  439105
 1836139
 1464748
 1464748

  C3 = 

'1053224'
'1696241'
'580064'
'1464748'
'external'
'439105'
'1053224'

这就是我想要的。但是,当我使用948739行的实际文件时,我只是得到一个数字列表,看起来像这样:

  439105
  439105
  439105
  439105
 1836139
 1464748
 1464748
 1464748
 1464748
  580064
  580064
  580064
  580064
 1053224

并且持续了很长一段时间......

我在拨打CSVIMPORT时做错了什么?我无法弄明白......任何帮助都将不胜感激,谢谢!

0 个答案:

没有答案