Tikz 为每个创建一个数组

Tikz 为每个创建一个数组

我有这个代码

,tex
\newcommand{\matmul}[3]{
\def#1{}
\foreach \i in {#3}{
\def\temp{}
\foreach \j in {#2}{
\pgfmathparse{\i*\j}
\xdef\temp{\temp,\pgfmathresult}
}
\xdef#1{#1,{\temp}}
}
}
\matmul{\yeet}{1,3}{2,4}
$\yeet$

这个输出

,,2,0,6.0,,4.0,12.0

我似乎想不出一个解决方案,让我在列表开头不出现双逗号和逗号

这是我想要的输出

2.0,6.0,4.0,12.0

答案1

标准的东西:引入计数器,并且仅当计数器大于 1 时才添加逗号。

\documentclass{article}
\usepackage{pgffor}
\newcommand{\matmul}[3]{%
\foreach \i [count=\ci] in {#3}{%
\foreach \j [count=\cj] in {#2}{%
\pgfmathparse{\i*\j}%
\ifnum\cj=1%
\xdef\temp{\pgfmathresult}%
\else
\xdef\temp{\temp,\pgfmathresult}%
\fi
}%
\ifnum\ci=1%
\xdef#1{{\temp}}%
\else
\xdef#1{#1,{\temp}}%
\fi
}%
}
\begin{document}
test:\matmul{\yeet}{1,3}{2,4}$\yeet$ \typeout{\yeet}
\end{document}

结果:

{2.0,6.0},{4.0,12.0}

如果您能考虑在将来发布类似上述的完整示例,那就太好了。

相关内容