0

捕获部分 .txt 文件我需要同时创建一个带有两个图的图形窗口。我得到了一个 .txt 文件,其中包含一些介绍行和 3 个带有值的列。第一列包含 x 的值,第二列和第三列包含 y 的值。

1st 使用 fid=fopen 等访问文件。

第二次阅读文件并跳过我使用它所做的前 30 行(介绍行):

    headlines = fgetl(fid);
     for i = 1:30
         tline = fgetl(fid);
         headlines = char(headlines(1:i-1,:), tline);

第三制作情节本身,我将使用保持(或保持)使两个情节进入同一个图形窗口。不知何故,我需要使一列成为要放在情节上的值的分类。我可以手写它们,但我需要程序自己读取它们。我不能完全解释它,但我想你明白了。

最后用 fclose(fid) 等关闭它。

您能否帮我解决第三个问题并告诉我是否缺少某些东西?先感谢您 :)

4

2 回答 2

2

好的,我想我找到了问题所在。我怀疑你的数据在某处有一些无效的文本。我搜索了互联网,我想我找到了数据的副本...... http://cdiac.ornl.gov/ftp/trends/temp/hansen/gl_land.txt

该数据集的结尾如下:

 2007      0.75      0.69
 2008      0.56      0.70
 2009      0.72    -99.99
 2010      0.83    -99.99
-------------------------

最后的 ---- 行导致它出错。

所以我使用了以下内容:

fid = fopen('gl_land.txt','r');
C = textscan(fid,'%f %f %f','headerlines',30,'commentstyle','--');
fclose(fid);
x = C{1}; y1 = C{2} y2 = C{3};
plot(x,[y1 y2])

我切换到 textscan 因为 textread 不支持自定义注释样式。我使用了“--”的注释样式,而不仅仅是“-”,因为“-”会开始跳过负值。

注意:此数据包含 -99.99 以指示无效/缺失数据,因此您可能需要在绘图之前添加以下内容:

y1(y1==-99.99) = NaN;
y2(y2==-99.99) = NaN;

数据图

于 2011-12-23T16:59:05.620 回答
1

我不确定它是否能完全解决您的问题。但我会做这样的事情:

值.txt:

...
...
1 0 0
2 0 1
3 1 0
4 1 1
5 1 2
6 2 4

matlab脚本:

[x y1 y2]=textread('values.txt','%f %f %f','headerlines',30)
plot(x,[y1 y2])

结果 :

在此处输入图像描述

于 2011-12-23T12:57:14.113 回答