【问题标题】:MATLAB: How to import multiple CSV files with mixed data typesMATLAB:如何导入具有混合数据类型的多个 CSV 文件
【发布时间】:2012-03-04 03:53:52
【问题描述】:

我刚开始学习 MATLAB,将 csv 文件导入二维数组有困难..

这是我需要的示例 csv:(所有 csv 文件格式相同,列固定)

Date,                Code,         Number....
2012/1/1,            00020.x1,             10
2012/1/2,            00203.x1,            0300
...

由于csvread() 仅适用于整数,我应该分别导入数字数据和文本数据还是有任何快速方法可以导入具有混合数据类型的多个 csv 文件?

非常感谢!!

【问题讨论】:

    标签: matlab file-io csv import


    【解决方案1】:

    您正在寻找的可能是 xlsread 函数。

    它打开 Excel 识别的任何文件,并自动将文本数据与数字数据分开。

    问题在于,至少在我的计算机上,默认分隔符是 ;,而不是 ,(至少对于我在巴西的语言环境而言)。因此 xlsread 将尝试使用 ; 分隔文件中的字段,而不是您想要的逗号。

    要更改这一点,您必须更改系统区域设置以添加逗号作为列表分隔符。因此,如果您愿意,请在 windows vista 中执行此操作,单击开始、控制面板、区域和语言选项、自定义此格式,然后将列表分隔符从“;”更改为到 ','。在其他窗口上,该过程应该几乎相同。

    完成之后,输入:

    [num, txt, all] = xlsread('your_file.csv');
    

    将返回类似:

    num =
    
    10
    300
    
    
    txt = 
    
    '01/01/2012'    ' 00020.x1'
    '02/01/2012'    ' 00203.x1'
    
    
    all = 
    
    '01/01/2012'    ' 00020.x1'    [ 10]
    '02/01/2012'    ' 00203.x1'    [300]
    

    请注意,如果您的语言环境已将列表分隔符设置为“,”,则无需更改系统上的任何内容即可使其正常工作。

    如果您不想更改系统只是为了使用 xlsread 功能,那么您可以使用此处描述的 textscan 功能:http://www.mathworks.com/help/techdoc/ref/textscan.html

    问题在于它不像调用它那么简单,因为您必须打开文件,逐行迭代,并明确告诉 matlab 文件的格式。

    最好的问候

    【讨论】:

    • 工作!谢谢卡斯蒂略!但是还有一个问题..新文件覆盖了旧文件....我尝试读取了几个文件,但只有一个(最后一个已处理)被导入......这是我放的~​​ p =dir('C:\文件夹名*.csv'); for i=1:length(p) [num, text, all]= xlsread(['C:\foldername\', p(i).name])
    • 嗨!我很高兴它有帮助!您现在遇到的问题是由于您如何实现循环。每次循环运行时,变量 num、text 和 all 都会被覆盖。您需要做的就是每次循环运行一个不同的变量赋值。
    【解决方案2】:

    我最近写了一个函数来解决这个问题。见delimread

    值得注意的是,csv 文件上的 xlsread 仅适用于 Windows。在 Linux 或 Mac 上,xlsread 在无法读取 csv 文件的“基本”模式下工作。从长远来看,如果您需要跨平台迁移或在 Linux 服务器上自动运行代码,使用 xlsread 可能不是一个好主意。

    xlsread 也比其他文本解析函数慢得多,因为它会打开一个 Excel 会话来读取文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      • 2020-09-17
      • 2017-03-31
      • 2016-03-14
      • 2017-07-27
      • 1970-01-01
      相关资源
      最近更新 更多