扫描Simbiology变体在Matlab虚拟人群仿真
2视图(30天)
显示旧的评论
你好,
我有Simbioogy变体,我想扫描参数值的2倍变化超过10分。首先,我怎么能扫描所有参数包含在2倍的变体变化?这可以通过使用Simbiology变体或我需要从我的模型使用:选择每个参数p1 = sbioselect (m2,“名字”,“kNeu2NA0”,“类型”,“参数”);% m2是我的模型
我选择kNeu2NA0是一个参数值。
我知道这可以使用Simbiology模型模拟分析仪应用但我想使用Matlab代码。同时,使用simbiology变体对象创建10个不同病人的好方法在for循环参数?
提前谢谢,
一些代码:
%模拟虚拟人口为5 -氟尿嘧啶
sbioloadproject human_model_5FU;
v = getvariant (m2);
集(v(1),“活跃的”);%设置包含五大参数的变异。
p1 = sbioselect (m2,“名字”,“kNeu2NA0”,“类型”,“参数”);
p2 = sbioselect (m2,“名字”,“kE2D0”,“类型”,“参数”);
p3 = sbioselect (m2,“名字”,“kDgCXC0”,“类型”,“参数”);
p4 = sbioselect (m2,“名字”,“kNeu_LP2L0”,“类型”,“参数”);
第一个变量%两个褶皱变化
因为我= 1:10
一个= [p1。价值/ 2 p1.value * 2);
b = [p2。价值/ 2 p2.value * 2);
c = (p3。价值/ 2 p3.value * 2);
d = [p4。价值/ 2 p4.value * 2);
r (i) =((2)——(1)。*(兰德+ (1)));
t (i) = (b - b(1)(2)。*(兰德+ b (1)));
你(我)= (c - c(1)(2)。*(兰德+ c (1)));
p (i) = (d(2) -(1) . *(兰德+ d (1)));
vObj = addvariant (m2, vsim);
addcontent (vObj{“参数”,“kNeu2NA”,“价值”,r (i)});
addcontent (vObj{“参数”,“kE2D0”,“价值”,t (i)});
addcontent (vObj{“参数”,“kDgCXC0”,“价值”,你(我)});
addcontent (vObj{“参数”,“kNeu_LP2L0”,“价值”,p (i)});
vObj。积极= true;
结束
0评论
接受的答案
亚瑟Goldsipe
2021年9月3日
有很多方法可以做到这一点。你当然可以使用变体。但我个人将通过创建一个
SimFunction
从模型和使用
场景
代表参数样本。这类似于代码模型中使用的分析器。事实上,我创建了这个例子通过查看和修改代码分析器创建的模型。
sbioloadproject洛特卡m1
paramNames = [“x”,“日元”,“日元”];
outputNames = [“日元”,“日元”];
simfunc = createSimFunction (m1, paramNames outputNames, [])
paramValues = simfunc.Parameters.Value;
样品= SimBiology.Scenarios ();
为i = 1:元素个数(paramNames)
probdist = makedist (“统一”,“低”,0.5 * paramValues(我),“上”2 * paramValues (i));
add(样本,“elementwise”probdist paramNames(我),“数量”10);
结束
simdata = simfunc(样品,2);
sbioplot (simdata);
我希望这可以帮助。
亚瑟