扫描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;
结束

接受的答案

亚瑟Goldsipe
亚瑟Goldsipe 2021年9月3日
有很多方法可以做到这一点。你当然可以使用变体。但我个人将通过创建一个 SimFunction 从模型和使用 场景 代表参数样本。这类似于代码模型中使用的分析器。事实上,我创建了这个例子通过查看和修改代码分析器创建的模型。
sbioloadproject洛特卡m1
paramNames = [“x”,“日元”,“日元”];
outputNames = [“日元”,“日元”];
simfunc = createSimFunction (m1, paramNames outputNames, [])
simfunc =
SimFunction参数:的名字 价值 类型 ______ _____ ___________{x} 1{“物种”}{“日元”}900{“物种”}{y2的}900{“物种”}可见:的名字 类型 ______ ___________{“日元”}{“物种”}{y2的}{“物种”}给:没有
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);
我希望这可以帮助。
亚瑟
5个评论
Fearass Zieneddin
Fearass Zieneddin 2021年9月9日
编辑:Fearass Zieneddin 2021年9月9日
谢谢你这么多!我能够得到平均模拟行为比较min和max行为具有类似下面这样的代码:
stopTime = simdata (1) .Time(结束);
timeVector = linspace (0 stopTime 843);
simdataResampled =重新取样(simdata timeVector);
%的“堆栈”矩阵仿真结果和平均
simdataResampled.Data stackedData =猫(3日);
meanData =意味着(stackedData, 3);
maxData = max (stackedData [], 3);
minData = min (stackedData [], 3);
i = 1:元素个数(outputNames)
图(我);
情节(timeVector meanData(:,我)“颜色”,“红色”);
持有;
情节(timeVector maxData(:,我)“颜色”,“蓝”);
持有;
情节(timeVector minData(:,我)“颜色”,“绿色”);
持有;
包含(的时间(天));
集(gcf,“颜色”,' w ');
集(gca),“字形大小”11)
集(gca),“盒子”,“关闭”);
结束
持有;

登录置评。

更多的答案(0)

类别

找到更多的在导入数据帮助中心文件交换

下载188bet金宝搏


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的