有没有办法在 Gnuplot 中有过程(或类似 C 的函数)?我需要一些非常简单的东西,就像:
function func1()
{
var1 = "string1";
var2 = var1."string2";
return var2;
}
使我的 gnuplot 脚本更加紧凑。
Gnuplot 支持带参数的(简单)函数:
func1(x)=x."string2"
如果您使用的是 gnuplot 4.4,则可以创建更复杂的“内联”函数:
func1(x)=(var1=x, var2=var1."string2", var1.var2) #returns x.x."string2"
在这种形式中,函数的最后一部分是返回var1.var2
的 ( ) 并且语句从左到右进行评估。
如果你想拥有不接受参数的函数,你可以(经常)使用宏:
set macro
funcmacro='"string1"."string2"'
print @funcmacro
是的。您可以在 gnuplot 中使用类似的东西连接字符串
strcat(str1,str2) = sprintf("%s%s",str1,str2)
str3 = strcat("string1","string2"); print str3
第一行是函数定义,第二行只是一个使用示例。您可以在gnuplot 文档的“用户定义的变量和函数”部分阅读更多信息(它位于“表达式”部分下;您可能无法在 pdf 中搜索字符串“用户定义”,因为' 由 LaTeX 生成的字符)。
您可能需要考虑查看 Pyxplot 绘图包http://pyxplot.org.uk,它的语法与 gnuplot 非常相似(尽管经过了清理),但它也具有脚本语言的许多特性。它有子程序,应该完全按照您的要求进行。