是否可以从数据文件中读取数字?
我找到了上面的例子,但我不需要一次性得到整行。
我需要类似这样的东西:
read(file)
get(A)
get(B)
X=A+B
print(X)
对不起,我的英语不好。 :)
这是我的例子,但它不起作用:/
\documentclass{scrartcl}
\usepackage{luatextra}
\usepackage{filecontents}
\begin{luacode}
function addplot()
filename = "testdata.dat"
tex.print('\\addplot coordinates {')
for line in io.lines(filename) do
local tab = string.explode(line)
x=tab[1]
y=math.log10(tab[2])
tex.print('('..x..','..y..')')
end
tex.print('};')
end
\end{luacode}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\directlua{addplot()}
\end{axis}
\end{tikzpicture}
\end{document}
删除\\
不起作用。
答案1
\usepackage{filecontents}
应替换为\usepackage{pgfplots}
。\usepackage{luatextra}
应替换为\usepackage{luacode}
。 您还应该删除 处的两个反斜杠{
:
\documentclass{scrartcl}
\usepackage{pgfplots}
\usepackage{luacode}
\begin{filecontents*}{testdata.dat}
1.0 20
1.1 21
1.2 22
\end{filecontents*}
\begin{luacode*}
function addplot()
filename = "testdata.dat"
tex.print('\\addplot coordinates {')
for line in io.lines(filename) do
local tab = string.explode(line)
x=tab[1]
y=math.log10(tab[2])
tex.print('('..x..','..y..')')
end
tex.print('};')
end
\end{luacode*}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\directlua{addplot()}
\end{axis}
\end{tikzpicture}
\end{document}
输出为: