我的数据文件如下所示:
c0e0100.dat 0.234
c0e0200.dat 0.857
...
c0e1200.dat 0.003
我想从第一列中的文件名的第4到第7个字符中提取x值。 我尝试了以下用户功能:
str2num(s)=(s[4:7]+0.0)
然后:
plot 'file' using (str2num($1)):($2)
但这给出了:
internal error: substring range operator applied to non-STRING type
我也尝试过:
plot 'file' using (str2num(stringcolumn($1))):($2)
但得到了同样的结果。
有没有办法在gnuplot中执行此操作而不先通过外部工具运行数据?
答案 0 :(得分:1)
表达式$1
是column(1)
的捷径,因此使用$1
已经为您提供了相应列的数字表示。要获取字符串值,请使用stringcolumn(1)
(不使用$
!)或strcol(1)
:
str2num(s)=(s[4:7]+0.0)
plot 'file ' using (str2num(strcol(1))):2