pgfplots:分段定义函数的语法

pgfplots:分段定义函数的语法

今天我读了关于分段定义函数的文章,并看到了这篇实际上是关于其他内容的文章:

在 pgfplots 中标记图,无需手动输入坐标

这是从那里取来的。

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\thispagestyle{empty}   

\begin{tikzpicture}
 \begin{axis}[
        axis y line=center,
        axis x line=middle, 
        axis on top=true,
        xmin=-7,
        xmax=7,
        ymin=-4,
        ymax=4,
        clip=false
] 

\addplot[
    mark=none,
    domain=-4:6,
    samples=80,
    red,
    thick,
] {(x<-2)*-2 + (!(x<-2) && (x<3))*x + (!(x<3)) * 3}
    node[pos=0.1,pin=135:{\color{purple}$f(x)=-2$}] {}
    node[pos=0.6,pin=135:{\color{blue}$f(x)=x$}] {}
    node[pos=0.9,pin=135:{\color{green!70!black}$f(x)=3$}] {}
;
\end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

and(<condition1>,<condition2>)我得到了解释的语法这里例如,但我不明白上面例子中的语法

(x<-2)*-2 + (!(x<-2) && (x<3))*x + (!(x<3)) * 3

and有人能给我解释一下吗?还是我只是瞎了眼?里面没有类似的东西and(a,b),那会做什么!?我猜这是否定的。

更新

我可以在文档中的某处找到这个吗?或者这只是常识?

答案1

pgfmath真表达式中,其值为 1,在假表达式中,其值为 0。也就是说,如下表达式等同(x<-2)于函数 f(x):

在此处输入图片描述

因此,这是有效的,因为:

  1. (x<-2):此条件仅对 成立x < -2。因此,这仅对 的表达式有贡献x < -2。因此,(x<-2)*-2=-2对于x<-2,否则为 0。

  2. (!(x<-2) && (x<3)):对于 ,其值为 1 -2 <= x <= 2。因此,在这个范围内, 的值为x

  3. !(x<3):仅当 时才为 1。x >=3因此,(!(x<3)) * 3=3当 时为x >=3,否则为零。

如果仍有任何疑惑,这个计算各种条件值的表格应该会有所帮助:

在此处输入图片描述

答案2

这似乎是布尔逻辑。

因此,&&是的运算符and,而是!否定运算符。

那么x = 1

(x<-2)*-2

1 < -2?不,好吧,那就是0

0*-2 = 0

还有!

!(x<-2)

与上面相同,但这次取反结果,因此 a0变为 a 1, a1变为 a0

等等...

以下是有关布尔逻辑如何工作的一些信息

http://www.mathworks.nl/help/matlab/matlab_prog/truth-table-for-logical-operations.html

相关内容