让我们说我的高压力函数是:
P(h) = p0 * exp(-h/scale)
我想为不同的行星绘制一套情节;相同的图形(画布)但不同的p0
和scale
参数,每个行星的一对(加上行星的名称)。
我是否必须输入" multiplot"并在为每组参数调用相同的scale =
之前重新分配p0 =
和plot P(h)
,还是有更简洁的方法来获取这样的一组图表?
答案 0 :(得分:2)
您可以定义三个不同的空格分隔字符串来保存参数,然后迭代它们:
p0 = "1 2 3 4"
scale = "0.1 0.2 0.3 0.4"
planets = "First Second Third Fourth"
P(h, n) = (1.0*word(p0, n)) * exp(-h/(1.0*word(scale, n)))
plot for [i=1:words(planets)] P(x, i) title word(planets, i)
1.0*
用于将相应字符串“转换”为数字。丑,但有效。如果你想要它更清洁一点,你可以定义函数p0
和scale
以根据迭代参数返回一个数字
p0(n) = (n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : 4)
scale(n) = (n==1 ? 0.1 : n==2 ? 0.2 : n==3 ? 0.3 : 0.4)
P(h, n) = p0(n)*exp(-h/scale(n))
plot for [i=1:words(planets)] P(x, i) title word(planets, i)