【问题标题】:Reading portion of CSV with multiple data types读取具有多种数据类型的 CSV 部分
【发布时间】:2014-08-05 14:05:57
【问题描述】:

我有一个 csv 文件,其中包含我想要读取的数字和字母。该文件也有标题(第一行),但我可以单独阅读它们,所以这不是问题。 我无法解决的是文件有多种数据类型并且我只想读取一部分(因为文件非常大),比如前 5000 行。

我已尝试使用三个输出的 xlsread,但出现以下错误:“??? 错误:对象返回错误代码:0x800A03EC”。我也尝试过 textscan,但如果我理解正确,您必须将变量类型输入为输入,这对我来说不是很实用,因为我有大量的列。我希望这不是重复的,但我已经阅读了其他解决方案,但我无法将它们应用于我的问题。

有没有办法做到这一点?

提前谢谢你

【问题讨论】:

  • 系统是否安装了excel?如果是这样,您可以手动在excel中打开文件吗? xlsread 尝试使用 excel com 界面。
  • 我已经安装了,但是文件太大了,不容易。一旦我打开它,你建议我做什么?我尝试将数据粘贴为新变量,但出现错误。

标签: matlab csv


【解决方案1】:

为了测试问题,我创建了一个小的 test.csv 文件。 它包含以下几行:

header1;header2;header3
a;1;xx
b;2;yy
c;3;zz
d;4;xxx
e;5;yyy

我使用以下代码读取数据:

range = 'A2:C3'
[num, text, both] = xlsread('test.csv', 1, range)

包含文本和数字的两个变量的输出符合预期:

both = 

    'a'    [1]    'xx'
    'b'    [2]    'yy'

【讨论】:

  • 我之前尝试过,但我又做了一次,但我得到了错误:???错误:对象返回错误代码:0x800A03EC ==> xlsread 中的错误 250 ExcelWorkbook = Excel.workbooks.Open(file,0,true);也许这与在同一列中我可能有多个数据类型的事实有关?
  • 我可以在一列中包含字符串和数字 - 刚刚检查过。您是否尝试加载我的 test.csv 示例?你对那个文件有同样的问题吗?
  • 是的,我有,而且有效。但是,当我在我的文件上使用上面的代码时,我得到一个错误。有几个可能的原因: • 文件名或路径不存在。 • 该文件正被另一个程序使用。 • 您尝试保存的工作簿与当前打开的工作簿同名。帮助文件:C:\Program Files (x86)\Microsoft Office\Office12\1033\XLMAIN11.CHM 帮助上下文 ID:0 ==> xlsread 中的错误 250 ExcelWorkbook = Excel.workbooks.Open(file,0,true);我不认为该文件正在其他地方使用并且它存在,因为我从中提取标题并在 excel 上打开它。
  • 您可以尝试将大 csv 文件的前 10/100/1000 行和列复制到一个较小的文件中,然后检查是否可以正确读取较小的文件。
猜你喜欢
  • 2019-08-02
  • 2018-02-17
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
相关资源
最近更新 更多