Types gnuplot:使用格式数据类型来分隔数字?

Types gnuplot:使用格式数据类型来分隔数字?,types,format,gnuplot,Types,Format,Gnuplot,我想分离对数标度的给定范围,特别是最小值。 e、 g.x_min=0.2,我想得到“2”和“-1”作为2*10**(-1)的一部分,以便进一步使用。从手册中,这将是%t和%t。我尝试使用print(“%t”,x_min),但我只得到x_min本身,无论我在print中设置了哪种类型。在gnuplot中有什么方法可以做到这一点吗?@GRSousaJR已经在评论中提到了。我很快用gnuplot 5.2.8进行了测试,不一致之处仍然存在。给出了一个繁琐的解决方案 例如: ### inconsisten

我想分离对数标度的给定范围,特别是最小值。
e、 g.x_min=0.2,我想得到“2”和“-1”作为2*10**(-1)的一部分,以便进一步使用。从手册中,这将是%t和%t。我尝试使用print(“%t”,x_min),但我只得到x_min本身,无论我在print中设置了哪种类型。在gnuplot中有什么方法可以做到这一点吗?

@GRSousaJR已经在评论中提到了。我很快用gnuplot 5.2.8进行了测试,不一致之处仍然存在。给出了一个繁琐的解决方案

例如:

### inconsistency in gprintf with %t and %T
reset session

array Numbers = [0.95, 9.5, 95, 995, 9995]

print "gprintf with %t"
do for [i=1:|Numbers|] {
    print gprintf("% 8g",Numbers[i])." = ".gprintf("%t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
print "gprintf with %.3t"
do for [i=1:|Numbers|] {
    print gprintf("% 8g",Numbers[i])." = ".gprintf("%.3t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
print "gprintf with %.0t"
do for [i=1:|Numbers|] {
    print gprintf("% 8g",Numbers[i])." = ".gprintf("%.0t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
### end of code
print gprint(“%t”,95)
给出
0.95
print gprintf(“%t”,95)
给出
2

因此,
95=0.95x10^2
没有错,但预期结果是
9.5x10^1

但是现在,如果您使用例如
%.3t
而不是
%t
,您将得到错误的结果。 也许有人能解释一下

总而言之: (它变得有点长,因为
gprintf()
只允许一个参数。)

代码:

### inconsistency in gprintf with %t and %T
reset session

array Numbers = [0.95, 9.5, 95, 995, 9995]

print "gprintf with %t"
do for [i=1:|Numbers|] {
    print gprintf("% 8g",Numbers[i])." = ".gprintf("%t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
print "gprintf with %.3t"
do for [i=1:|Numbers|] {
    print gprintf("% 8g",Numbers[i])." = ".gprintf("%.3t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
print "gprintf with %.0t"
do for [i=1:|Numbers|] {
    print gprintf("% 8g",Numbers[i])." = ".gprintf("%.0t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
### end of code
结果:(使用gnuplot 5.2.8)


@GRSousaJR已经在评论中提到。我很快用gnuplot 5.2.8进行了测试,不一致之处仍然存在。给出了一个繁琐的解决方案

例如:

### inconsistency in gprintf with %t and %T
reset session

array Numbers = [0.95, 9.5, 95, 995, 9995]

print "gprintf with %t"
do for [i=1:|Numbers|] {
    print gprintf("% 8g",Numbers[i])." = ".gprintf("%t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
print "gprintf with %.3t"
do for [i=1:|Numbers|] {
    print gprintf("% 8g",Numbers[i])." = ".gprintf("%.3t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
print "gprintf with %.0t"
do for [i=1:|Numbers|] {
    print gprintf("% 8g",Numbers[i])." = ".gprintf("%.0t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
### end of code
print gprint(“%t”,95)
给出
0.95
print gprintf(“%t”,95)
给出
2

因此,
95=0.95x10^2
没有错,但预期结果是
9.5x10^1

但是现在,如果您使用例如
%.3t
而不是
%t
,您将得到错误的结果。 也许有人能解释一下

总而言之: (它变得有点长,因为
gprintf()
只允许一个参数。)

代码:

### inconsistency in gprintf with %t and %T
reset session

array Numbers = [0.95, 9.5, 95, 995, 9995]

print "gprintf with %t"
do for [i=1:|Numbers|] {
    print gprintf("% 8g",Numbers[i])." = ".gprintf("%t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
print "gprintf with %.3t"
do for [i=1:|Numbers|] {
    print gprintf("% 8g",Numbers[i])." = ".gprintf("%.3t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
print "gprintf with %.0t"
do for [i=1:|Numbers|] {
    print gprintf("% 8g",Numbers[i])." = ".gprintf("%.0t",Numbers[i])." x 10^".gprintf("%T",Numbers[i])
}
### end of code
结果:(使用gnuplot 5.2.8)


您可以使用
gprintf
来执行此操作。但是请注意,与
gprintf()
%t
%t
之间存在一些不一致之处。刚才看到,打印必须在gprintf之前。我将尝试一下,您可以使用
gprintf
来执行此操作。但是请注意,与
gprintf()
%t
%t
之间存在一些不一致之处。刚才看到,打印必须在gprintf之前。我会尝试一下,thxI没有检查,但可能您必须对%t使用相同的参数?由于该值不变,它们很容易不匹配?您的意思是,例如,
%.3T
?我不这么认为,这没什么意义,因为幂应该是一个整数。我没有检查,但也许你必须对%t使用相同的参数?由于该值不变,它们很容易不匹配?您的意思是,例如,
%.3T
?我不这么认为,这没什么意义,因为幂应该是一个整数。