I am trying to sum several fonctions in a plot with a loop (as I am trying to make the process automatic), and foreach doesn't seem to be able to help me.
Unluckily the question already asked pgfplots: use foreach inside addplot provides the opposite of what it says with an addplot inside a loop.
\foreachitem\i\in\alistlst[]{
\addplot [domain=\i,samples=50]
{ \GainPurGdB{\GainTot}
+\IntegrGdB*\NbItegr
+\PremOrdrLieuReelGdB{\WcArray[1]}
+\PremOrdrLieuReelGdB{\WcArray[2]}
%\foreach \k in {1,...,\WcArraylen} {
% \ifnum\OrdrArray[\k]=1
% +\PremOrdrLieuReelGdB{\WcArray[\k]}
% \fi
% \ifnum\OrdrArray[\k]=2
% +\DeuxOrdrLieuReelGdB{\WcArray[\k]}{\ZArray[\k]}
% \fi
%}
}[LieuReel,#4];
This code works, but if I try to use the commented part, It doesn't compile.
Do you have an idea ? Is this a lost cause ?
Thank you anyway for the time you spent reading this.
Edit : Adding a MWE
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots,listofitems}
\pgfplotsset{compat=1.16}
\newcommand{\GainPurGdB}[1]{ 20log10(#1) }
\newcommand{\IntegrGdB}{
-20(log10(x)) }
\newcommand{\PremOrdrLieuReelGdB}[1]{
-(10(log10(#1^2x^2+1))) }
\newcommand{\DeuxOrdrLieuReelGdB}[2]{
-10(log10((1-(x/#1)^2)^2+4(#2^2)*(x/#1)^2)) }
\newcommand{\TracQUnGdB}{
\xdef\alist{(\Wmin):}
\foreachitem\i\in\WcArray[]{
\xdef\alist{\alist(0.51/\i),(0.51/\i):(21/\i),(21/\i):}
}
\xdef\alist{\alist(\Wmax)}
\foreach \i in \alist {
\addplot [domain=\i,samples=50]
{ \GainPurGdB{\GainTot}
+\IntegrGdB\NbItegr
+\PremOrdrLieuReelGdB{\WcArray[1]}
+\PremOrdrLieuReelGdB{\WcArray[2]}
%\foreach \k in {1,...,\WcArraylen} {
% \ifnum\OrdrArray[\k]=1
% +\PremOrdrLieuReelGdB{\WcArray[\k]}
% \fi
% \ifnum\OrdrArray[\k]=2
% +\DeuxOrdrLieuReelGdB{\WcArray[\k]}{}
% \fi
%}
};
}
}
\newcommand{\NbItegr}{1}
\newcommand{\GainTot}{10}
\readlist\WcArray{10,0.1}
\readlist\OrdrArray{1,1}
\readlist\ZArray{0,0}
\begin{document}
\begin{center}
\begin{tikzpicture} % Inverses
\def\Wmax{10^(2)}
\def\Wmin{10^(-2)}
\begin{semilogxaxis}
[ymin=-90,ymax=80]
\TracQUnGdB
\end{semilogxaxis}
\end{tikzpicture}
\end{center}
\end{document}

\GainPurGdB,\GainTot, etc? – May 05 '21 at 18:01