我需要获取 pgfplotstable 中某一列的最后一个值。我有以下代码:
\documentclass{article}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread{
X
1
2
3
}\tbl
\pgfplotstablegetrowsof{\tbl}
\pgfmathparse{\pgfmathresult-1}
\pgfplotstablegetelem{\pgfmathresult}{X}\of{\tbl}
The last value of column `X' is \pgfplotsretval.
\end{document}
这将产生以下输出:
换句话说,值读取正确,但\pgfplotstablegetelem
命令呈现.0
。我该如何解决这个问题?
答案1
您需要使用int
since,否则 pgf 内部将使用类似的数字3.0
。
\documentclass{article}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread{
X
1
2
3
}\tbl
\pgfplotstablegetrowsof{\tbl}
\pgfmathparse{int(\pgfmathresult-1)}
\pgfplotstablegetelem{\pgfmathresult}{X}\of{\tbl}
The last value of column `X' is \pgfplotsretval.
\end{document}
一个更简单的可能性是
\documentclass{article}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread{
X
1
2
3
}\tbl
\pgfplotstablegetrowsof{\tbl}
\pgfplotstablegetelem{\the\numexpr\pgfplotsretval-1}{X}\of{\tbl}
The last value of column `X' is \pgfplotsretval.
\end{document}