如何获取 pgfplotstable 一列的最后一个值?

如何获取 pgfplotstable 一列的最后一个值?

我需要获取 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}

这将产生以下输出:

.0“X”列的最后一个值是 3。

换句话说,值读取正确,但\pgfplotstablegetelem命令呈现.0。我该如何解决这个问题?

答案1

您需要使用intsince,否则 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}

相关内容