我正在运行一个Fortran代码,该代码将几组数据输出到一个.dat文件。我想使用Octave在两列中绘制数据。例如,我要绘制的数据具有以下形式:
t Eta(t)
0.00 -0.748
0.50 -0.773
1.00 -0.774
1.50 -0.535
2.00 -0.120
2.50 0.131
3.00 0.184
3.50 0.211
4.00 0.068
4.50 -0.110
数据从第148行开始(不包括t和eta(t)行,并持续到第247行。t和eta(t)的数据显然跨越几列(根据文本文件,这是我正在从中读取行和列号。是否可以通过指定从哪一行开始或以任何形式绘制数据(如果采用这种形式)?简而言之,我想绘制它,以便t列中的值在x轴上,而eta(t)值在y轴上。预先感谢您的帮助!
faster的很多textread
替代品(请参阅安迪的答案)是dlmread
。
filename = "yourfile.dat";
# empty separator means 'automatic'
separator = '';
skipped_rows = 147;
skipped_columns = 0;
m = dlmread(filename, separator, skipped_rows, skipped_columns);
t = m(:,1);
eta_ = m(:, 2);
plot(t, eta_)
如果要在第248行之后停止读取文件,请使用
filename = "yourfile.dat";
# empty separator means 'automatic'
separator = '';
skipped_rows = 147;
skipped_columns = 0;
last_row = 248
last_column = 2
m = dlmread(filename, separator,
[skipped_rows, skipped_columns, last_row-1, last_column-1]);
t = m(:,1);
eta_ = m(:, 2);
plot(t, eta_)
使用文本阅读。您想跳过147行(标题行)并阅读247-147 = 100行
[t,eta] = textread ("yourfile.dat", "%f %f", 100, "headerlines", 147)
这将随数据返回2列向量“ t”和“ eta”。之后,您可以使用
绘制它们plot (t, eta)
您是否可以在线使用.dat还是可以上传?