Matlab Simbiology - 从反应到模型改变参数范围

时间:2016-10-19 14:30:36

标签: matlab simulation simulink

我试图将R2016b Simbiology模型的一组参数范围从反应改为模型。我使用的代码如下:

sbioloadproject('Comex Model 171016')
m1
m1.Parameters

for i = 1:numel(m1.Reactions) 
    p = m1.Reactions(i).KineticLaw.Parameters; 
    copyobj(p,m1) 
    delete(p)
end

m1.Parameters

此代码来自具有相同问题(http://uk.mathworks.com/matlabcentral/newsreader/view_thread/319663)的人,对他们来说这有效。但是,当我将其应用于我的项目时,我收到以下错误:

No method 'copyobj' with matching signature found for class 'SimBiology.Parameter'.
Error in untitled3 (line 11)
    copyobj(p,m1)  

我认为这可能是我正在使用的新版Matlab的一个特性 - 有没有人对我如何解决这个问题提出任何建议,或许是copyobj的替代方案?

感谢您的时间,

劳拉

1 个答案:

答案 0 :(得分:0)

copyobj函数一次只能处理一个参数。我猜你是因为你对多个参数有反应而得到这个错误。请尝试使用以下代码:

sbioloadproject('Comex Model 171016')
m1
m1.Parameters

for i = 1:numel(m1.Reactions) 
    p = m1.Reactions(i).KineticLaw.Parameters; 
    for j = 1:numel(p)
        copyobj(p(j),m1) 
        delete(p(j))
    end
end

m1.Parameters