当我尝试编译此代码时:
\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\pgfplotsset{ownstyle/.style={width=4cm,height=4cm,xmin=-0.5,xmax=2,ymin=0,ymax=2,axis lines=center,axis line style={->},xlabel=t/s,ylabel=x(t),xtick={0,1},ytick={0,1}}}
\begin{document}
\begin{tikzpicture}[declare function={func(\x)=((\x)<0) * (0) + and ((\x)>=0) * (1);}]
\begin{axis}[ownstyle]
\addplot+[no marks,black, line width=1pt,domain=-0.5:2]{func(x)};
\end{axis}
\end{tikzpicture}
\end{document}
我收到以下错误消息:
/home/max/.test.tex.swp:12:软件包 PGF 数学错误:抱歉,浮点单元的内部例程收到格式错误的浮点数“Y”。不可读部分位于“Y”附近。(在'((2Y5.0e-1])<0 中)(0)+和((2Y5.0e-1])>=0)(1)’)。
尽管错误消息来自这里和这里是一样的,我找不到如何解决这个问题,而且对我来说这似乎不一样。
我猜测出现此问题是因为 addplot 为函数提供了一些奇怪的输入,但我不知道为什么以及如何更改/修复它。
答案1
我认为你只需and
要从你的中删除func
。
您可能还喜欢使用samples at
下面的代码,而不是仅仅定义域。
\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\pgfplotsset{ownstyle/.style={width=4cm,height=4cm,xmin=-0.5,xmax=2,ymin=0,ymax=2,axis lines=center,axis line style={->},xlabel=t/s,ylabel=x(t),xtick={0,1},ytick={0,1}}}
\begin{document}
\begin{tikzpicture}[declare function={func(\x)=((\x)<0) * (0) + ((\x)>=0) * (1);}]
\begin{axis}[ownstyle]
\addplot+[no marks,black, line width=1pt,samples at={-0.5,-0.0001,0.0001,2}]{func(x)};
\end{axis}
\end{tikzpicture}
\end{document}