这里有一些与此相关的主题(使用javascript,c ++等),但尚未为gnuplot找到一个主题。
基本上,我想在标签中将“ nan”替换为“ ---”。
我知道我可以设置NaN = "---"
,但是NaN
的行为就像一个字符串,需要修改其他代码。
### How to compare to NaN?
NaN = GPVAL_NaN # default value for NaN
a = NaN
print (a==NaN ? "---" : sprintf("%g",a))
print (a==NaN ? sprintf("%g",a) : "---")
print (a!=NaN ? "---" : sprintf("%g",a))
print (a!=NaN ? sprintf("%g",a) : "---")
a = 123
print (a==NaN ? "---" : sprintf("%g",a))
print (a==NaN ? sprintf("%g",a) : "---")
print (a!=NaN ? "---" : sprintf("%g",a))
print (a!=NaN ? sprintf("%g",a) : "---")
### end of code
结果:
NaN
---
NaN
---
123
---
123
---
因此,没有一种组合可以完成这项工作。
最后,我发现以下内容似乎可行。
print (a/a == 1 ? sprintf("%g",a) : "---")
我的问题:
a/a
总是精确地为1
还是在特殊情况下是否可能存在舍入错误?
是这样做的“方式”还是我忽略了任何事情?
答案 0 :(得分:0)
只是为了不让这个问题出现而未解决...
一种比较变量a
是否为NaN
(至少在gnuplot中)并对其进行处理的最简单方法:
print (a == a ? sprintf("%g",a) : "---")
在SO上关于某些编程语言的讨论之后,人们开始辩论NaN==NaN
或NaN!=NaN
或两者都不是。
如果要与数据中的字符串"NaN"
进行比较,请参见上面的@Christoph注释。