使用标题在Matlab中导入文件

时间:2015-01-08 12:44:35

标签: matlab

假设我们有以下数据

Month   High     Low    Average
    1   45.36   33.84   39.6
    2   50.87   35.98   43.43
    3   56.05   38.55   47.3
    4   60.49   41.36   50.92
    5   67.17   46.92   57.05
    6   73.82   52.8    63.31
    7   79.72   56.43   68.07
    8   80.14   56.79   68.47
    9   74.54   51.83   63.18
    10  64.08   44.95   54.52
    11  52.66   39.54   46.1
    12  45.59   34.75   40.17

我知道我需要函数fprintf来导入包含标题的文件。我们有4列12行,那么如何使用fprintf函数或者我应该使用哪个函数成功导入数据?有this code,但我不确定它是否可靠。我可以使用Matlab本身的东西吗?

2 个答案:

答案 0 :(得分:2)

对文件使用fscanf,对字符串使用sscanf。语法类似于您熟悉的fprintf语法。 The matlab documentation provides a comprehensive set of examples to get you started.

不太灵活,但足以供您使用,可能是dlmread

假设您的数据位于data.txt,并且您想要跳过第一行(因为它是标题),请执行以下操作:

>> x = dlmread('data.txt', '', 1, 0)

x =

    1.0000   45.3600   33.8400   39.6000
    2.0000   50.8700   35.9800   43.4300
    3.0000   56.0500   38.5500   47.3000
    4.0000   60.4900   41.3600   50.9200
    5.0000   67.1700   46.9200   57.0500
    6.0000   73.8200   52.8000   63.3100
    7.0000   79.7200   56.4300   68.0700
    8.0000   80.1400   56.7900   68.4700
    9.0000   74.5400   51.8300   63.1800
   10.0000   64.0800   44.9500   54.5200
   11.0000   52.6600   39.5400   46.1000
   12.0000   45.5900   34.7500   40.1700

- edit-- 来自文档:

  

dlmread(filename,delimiter,R,C)读取左上角的数据   在文件的行R和列C,使用指定的分隔符。   文件名输入是用单引号括起来的字符串。   值R和C是从零开始的,因此R = 0,C = 0指定第一个   文件中的值。

现在我们想使用默认分隔符(任意数量的空格),但必须提供一个,因为我们还提供R ow和C ol参数,我们提供了空字符串。

答案 1 :(得分:0)

另一种选择是使用importdata。它可能有点慢,但它很好地弄清楚标题是什么并省略它。