我需要同时创建一个包含两个图的图形窗口。我给了一个带有一些引入行和带有值的3列的.txt文件。第一列具有x的值,y的第二和第三值。
1st使用fid = fopen等访问文件
2nd阅读文件并跳过前30行(引言行),我用它做了:
headlines = fgetl(fid);
for i = 1:30
tline = fgetl(fid);
headlines = char(headlines(1:i-1,:), tline);
第3个制作剧情本身,我将使用hold(或hold on)来使两个图都进入同一个图形窗口。不知怎的,我需要把一个列作为值的gadering放在情节上。我可以手工编写它们,但是我需要程序来自己阅读它们。我无法解释它,但我认为你有这个主意。
最后用fclose(fid)等关闭它。
请你帮我解决第3个问题并告诉我是否缺少某些内容?提前谢谢你:)
答案 0 :(得分: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])
我切换到文本扫描,因为textread不支持自定义评论方式。我使用了评论风格' - '而不仅仅是' - ',因为' - '会开始跳过负面的值。
注意:此数据包含-99.99表示无效/缺失数据,因此您可能需要在绘图之前添加以下内容:
y1(y1==-99.99) = NaN;
y2(y2==-99.99) = NaN;
答案 1 :(得分:1)
我不确定它是否能完全解决您的问题。但我会做那样的事情:
values.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])
结果: