有沒有辦法在Gnuplot中擁有過程(或C類函數)?我需要一些非常簡單的東西,就像這樣:Gnuplot中的過程
function func1()
{
var1 = "string1";
var2 = var1."string2";
return var2;
}
使我的gnuplot腳本更緊湊一點。
有沒有辦法在Gnuplot中擁有過程(或C類函數)?我需要一些非常簡單的東西,就像這樣:Gnuplot中的過程
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 documentation的「用戶定義的變量和函數」部分閱讀更多內容(它位於「表達式」部分;您可能無法在pdf中搜索字符串'用戶定義',因爲'fi'由LaTeX生成的字符)。
您可能要考慮查看Pyxplot繪圖軟件包http://pyxplot.org.uk,該軟件包與gnuplot的語法非常相似(雖然已經清理乾淨),但它也具有很多腳本語言的功能。它有子程序,它應該完全按照你的要求來做。
謝謝!是的,我使用的是gnuplot 4.4,我會嘗試「內聯」和宏。 – Avio