2015-06-03 2 views
2

Скажем, моя функция высотно-давление:Как нарисовать несколько графиков для одной функции с несколькими параметрами?

P(h) = p0 * exp(-h/scale) 

Я хотел бы сделать ряд участков для разных планет; тот же график (холст), но разные параметры p0 и scale, пара (плюс название планеты) на одну планету.

ли я ввести «Multiplot» и переназначить scale = и p0 = перед вызовом же plot P(h) для каждого набора параметров или есть аккуратнее способ получить набор графиков, как это?

ответ

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) 
+0

На самом деле, я пошел для гибридного подхода. 'p0 (n) = 1.0 * word (p0_w, n)' –

Смежные вопросы