我正在使用附加功能扩展现有的 Matlab 程序。原程序用一个结构体来表示相空间中的一个稳态点,这个结构体有4个字段,像这样:
oldstylepoint =
kind: 'stst'
parameter: [0.7846 1]
x: -2.0010
stability: [1x1 struct]
在我的扩展中,我希望结构有 5 个字段(即一个额外的字段)。对于大多数点,该字段只是空的,但对于一些特殊(分叉)点,它将包含一些文本(命名发生的分叉类型)。所以它看起来像
newstylepoint =
kind: 'stst'
parameter: [0.7846 1]
x: -2.0010
stability: [1x1 struct]
flag: 'hopf'
但是现在我们遇到了一个问题。像这样的点存储在数组(分支)中,并且大多数分支都是迭代构建的。所以现有的程序有几个子程序来做类似的事情
newbranch = [oldbranch, newpoint]
newbranch(1) = pointzero
newbranch(N+1) = newpoint
现在,如果分支包含“旧样式”点(有 4 个字段)并且我想添加一个“新样式”点(有 5 个字段),Matlab 会给出连接错误。
所以现在我的问题是:有什么方法可以告诉 Matlab 在连接时它应该自动创建缺失的字段?还是有另一种方法可以优雅地解决这个问题?
(当然,我可以编辑所有现有的子例程,以确保它们处理的所有点都获得新字段(设置为''),如果他们还没有的话。但我希望尽可能少地更改现有代码。另一个无论如何,确保所有输入点(作为参数传递给现有例程)都是“新风格”也很困难。)