帮助中心帮助中心
将可观察对象添加到SimBiology模型
自从R2020a
obsObj = addoobservable (modelObj,obsName,obsExpression)
obsObj = addoobservable (modelObj,obsName,obsExpression,Name,Value)
例子
obsObj= addobservable (modelObj,obsName,obsExpression)增加了一个可观测的反对SimBiology®模型modelObj.输入obsName和obsExpression分别是可观察对象的名称及其表达式。
obsObj= addobservable (modelObj,obsName,obsExpression)
obsObj
modelObj
obsName
obsExpression
可观测的
obsObj= addobservable (modelObj,obsName,obsExpression,名称,值)的属性值obsObj使用一个或多个名称-值对参数。名字属性名称和价值对应的值。名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.有关属性列表,请参见可观察对象属性.
obsObj= addobservable (modelObj,obsName,obsExpression,名称,值)
名称,值
名字
价值
Name1, Value1,…,的家
全部折叠
加载靶介导药物处置(TMDD)模型.
sbioloadprojecttmdd_with_TO.sbproj
设定目标入住率(来)作为回应。
来
Cs = getconfigset(m1);cs.RuntimeOptions.StatesToLog =”到“;
获取给药信息。
D = getdose(m1,“每天”);
扫描不同剂量使用SimBiology。场景对象。为此,首先参数化量剂量的性质。方法更改相应的参数值场景对象。
SimBiology。场景
量
场景
amountParam = addparameter(m1,“AmountParam”,“单位”, d.AmountUnits);d.Amount =“AmountParam”;d.Active = 1;doseSamples = SimBiology。场景(“AmountParam”linspace(0300、31));
创建一个SimFunction模拟模型。集来作为仿真输出。
SimFunction
%抑制模拟过程中发出的信息警告。警告(“关闭”,“SimBiology: SimFunction: DOSES_NOT_EMPTY”);f = createSimFunction(m1,doseSamples,”到“d)
f = SimFunction参数:值类型单位名称 _______________ _____ _____________ ____________ {' AmountParam '} 1{“参数”}{‘nanomole}可见:单位名称类型 ______ _____________ _________________ {' “}{“参数”}{的无量纲}给:TargetName TargetDimension数量AmountValue AmountUnits _______________ ___________________________________ _______________ ___________ ____________ {' 等离子体。药物“}{”数量(例如,摩尔或分子)“}{”AmountParam“}1{”纳摩尔“}时间单位:天
警告(“上”,“SimBiology: SimFunction: DOSES_NOT_EMPTY”);
使用产生的剂量量来模拟模型场景对象。在这种情况下,物体产生31种不同的剂量;因此,该模型被模拟了31次,并生成了一个SimData数组中。
SimData
doseTable = getttable (d);sd = f(doseSamples,cs.StopTime,doseTable)
SimBiology模拟数据阵列:31 × 1模型名称:TMDD记录数据:物种:0隔间:0参数:1灵敏度:0可观察性:0
绘制模拟结果图。还添加两条参考线,表示的安全性和有效性阈值来.在这个例子中,假设any来高于0.85的值是不安全的,任何值来低于0.15的值无效。
H = sbioplot(sd);时间= sd(1).时间;h.NextPlot =“添加”;safetyThreshold = plot(h,[min(time), max(time)],[0.85, 0.85],“DisplayName的”,“安全阈值”);effacythreshold = plot(h,[min(time), max(time)],[0.15, 0.15],“DisplayName的”,“功效阈值”);
对仿真结果进行后处理。找出哪些剂量是有效的,对应于来在安全性和有效性阈值范围内的反应。为此,向模拟数据中添加一个可观察表达式。
%抑制模拟过程中发出的信息警告。警告(“关闭”,“SimBiology: sbservices: SB_DIMANALYSISNOTDONE_MATLABFCN_UCON”);newSD = addoobservable (sd,“stat1”,'max(TO) < 0.85 & min(TO) > 0.15',“单位”,无量纲的)
SimBiology模拟数据阵列:31 × 1模型名称:TMDD记录数据:物种:0隔间:0参数:1灵敏度:0可观察性:1
addoobservable函数为每个对象计算新的可观察表达式SimData在sd并将计算结果作为new返回SimData数组,newSD,现在添加了可观察对象(stat1).
sd
newSD
stat1
的两个不同属性中存储可观察到的结果SimData对象。如果结果是标量值,则将它们存储在SimData。ScalarObservables.否则,它们被存储在SimData。VectorObservables.在本例中,stat1可观察表达式是标量值。
SimData。ScalarObservables
SimData。VectorObservables
提取标量可观测值,并绘制它们与剂量量的关系。
scalarObs = vertcat(newSD.ScalarObservables);doseamount = generate(doseSamples);图绘制(doseAmounts.AmountParam scalarObs.stat1,“o”,“MarkerFaceColor”,“b”)
该图显示了50到180纳摩尔的剂量来在目标疗效和安全阈值范围内的反应。
你可以用不同的阈值来更新可观察表达式。该函数重新计算表达式并在newSimData对象数组。
newSD2 = updateobservable(newSD,“stat1”,'max(TO) < 0.75 & min(TO) > 0.30');
重命名可观察表达式。该函数重命名可观察对象,更新任何引用重命名可观察对象的表达式(如果适用),并以newSimData对象数组。
newSD3 = renameobservable(newSD2,“stat1”,“EffectiveDose”);
恢复警告设置。
警告(“上”,“SimBiology: sbservices: SB_DIMANALYSISNOTDONE_MATLABFCN_UCON”);
SimBiology模型,指定为SimBiology模型对象.
模型对象
可观察对象的名称,指定为字符向量或字符串。
这个名字
不能包含字符[],->,或<->.
[]
->
<->
不可能是空,字时间字零,或全部为空格。
在模型中必须是唯一的,这意味着任何可观察对象都不能与模型中的其他可观察对象、物种、间隔、参数、反应、变体或剂量具有相同的名称。
详细信息请参见命名模型组件的指南.
例子:“AUC_obs”
“AUC_obs”
数据类型:字符|字符串
字符
字符串
可观察对象的表达式,指定为字符向量或字符串。
例子:“trapz(时间、药物)”
“trapz(时间、药物)”
可观察对象,返回为可观测的对象。
全部展开
如果多个模型组件(模型、隔间、物种、参数、反应、规则、事件、可观察物、剂量和变体)具有相同的名称,SimBiology将发出警告。在未来的版本中,在单个模型中,这些组件将被要求具有唯一的名称,即使它们是不同类型的,但有以下两个例外:
不同区域的物种可以有相同的名字。
如果参数的作用域是不同的父参数,则参数可以具有相同的名称。具体来说,您可以对模型作用域参数和反应作用域参数使用相同的名称,其中每个反应作用域参数属于不同的反应。
此命名限制的目的是确保每个模型组件都可以在模型中通过其唯一的名称明确地引用。有关如何在表达式中引用模型组件名称的详细信息,请参见在表达式中引用名称的指南.
要消除模型中的重复名称的歧义,请使用updateDuplicateNames在命令行中执行。该函数接受SimBiology模型作为输入,并根据需要更新组件名称。您还可以指定可选输出,例如检查是否发生了任何更新的逻辑标志、模型更改列表,以及在进行任何更新之前的原始模型副本。
updateDuplicateNames
的updateDuplicateNames函数通过添加后缀来消除重复名称的歧义“_N",在那里N产生唯一名称的第一个正整数。如果存在后缀,N将从该后缀开始递增。例如,如果有两个命名为x_3,函数将其中一个名称更新为x_4.如果现有后缀有前导零,则该函数省略新名称中的零。例如,如果x_003是重复的名称,它会被重命名为x_4.但是,该函数假设有前导零和没有前导零的名称是不同的。例如,x_005和x_5被认为是不同的名字。
“_N"
SimBiology不允许在模型中为模型组件使用重复的名称。
可观测的|addobservable (SimData)|updateobservable (SimData)|renameobservable (SimData)
addobservable (SimData)
updateobservable (SimData)
renameobservable (SimData)
您有这个示例的修改版本。要使用编辑打开此示例吗?
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:.
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系当地办事处