修改一个odeset参数

时间:2014-12-18 08:18:05

标签: matlab

我使用ode15s来解决DAE问题。我通过odeset质量矩阵和其他更多信息:

opts=odeset('Mass',M,'MassSingular','yes','MStateDependence','none');

我还计算了之前一次的Jpattern。要将它提供给函数,我可以再写一次

opts=odeset('Mass',M,'MassSingular','yes','MStateDependence','none', 'JPattern',JPat);

有没有办法修改单个参数并保留结构的其余部分?

我试过

opts.JPattern = JPat;

但它没有用。

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

opts = odeset('Mass',M,'MassSingular','yes','MStateDependence','none');
opts = odeset(opts,'JPattern',JPat);

这是使用语法(参见documentation):

  

options = odeset(oldopts,'name1',value1,...)改变现有的   选项结构oldopts。这设置了与现有选项相等的选项   结构oldopts,覆盖oldopts中的任何值   使用名称/值对重新指定,并添加任何新对   结构体。修改后的结构作为输出参数返回。