假设我们有以下数据
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本身的东西吗?
答案 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
。它可能有点慢,但它很好地弄清楚标题是什么并省略它。