pgfplotstable: 루프를 사용하여 행을 만드는 방법

pgfplotstable: 루프를 사용하여 행을 만드는 방법

내부에 계산된 데이터가 포함된 여러 테이블 행을 만들고 싶습니다.
그래서 제 생각에는\pgfplotstablevertcat{<1>}{<2>}

그러나 다음과 같은 것(예!)은 작동하지 않습니다.

\foreach \k in {1,...,5}{
\pgfplotstableread{
\k \pgfmathparse{\k^2}\pgfmathresult
}\dataX % How to name this best way?
}

내가 무엇을 해야 합니까?

여기에 이미지 설명을 입력하세요

\documentclass[a4paper]{article}
\usepackage{pgfplotstable}

\begin{document}
This works:
% Data
\pgfplotstableread[]{
1 1
}\data

\pgfplotstableread{
2 4
}\dataII

% Concatenate
\pgfplotstablevertcat{\data}{\dataII}
% Output
\pgfplotstabletypeset[
columns/0/.style={column name=$k$},
columns/1/.style={column name=$k^2$}
]{\data}

This does not work: 
%\foreach \k in {1,...,5}{
%\pgfplotstableread{
%\k \pgfmathparse{\k^2}\pgfmathresult
%}\dataX % How to name this best way
%}
\end{document}

답변1

create on use(또는 ) 을 찾고 있을 수도 있습니다 \pgfplotstablecreatecol.

\documentclass[a4paper]{article}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.16}
\begin{document}

This is how it works:
\pgfplotstableset{create on use/k/.style={
create col/set list={1,...,10}},
columns/my new col/.style={string type}}
\pgfplotstableset{create on use/ksquared/.style={
create col/assign/.code={
\getthisrow{k}\entry
\pgfmathtruncatemacro{\mynewentry}{\entry*\entry}%
\pgfkeyslet{/pgfplots/table/create col/next content}\mynewentry}}}
\pgfplotstablenew[columns={k,ksquared}]{10}\cistable

\pgfplotstabletypeset[columns/k/.style={column name=$k$},
columns/ksquared/.style={column name=$k^2$}]{\cistable}
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보