我正在使用MATLABs ODE套件来解决一个确定神经元行为的13个微分方程组。现在我想添加第二个神经元,它由同一组微分方程组操作,但受第一个神经元的影响。更重要的是,这第二个神经元也将影响第一个神经元。 (这两个单元格之间的前馈和反馈。)
有没有方便的方法呢?我可以将微分方程分布在两个函数文件上,还是必须将它们复制到原始函数文件下面,以便在同一个文件中有更长的方程列表?我希望每个单元格能够有一个文件,并以某种方式保持这种组织。 (如果我可能想再将它扩展到三个或四个神经元。)
如果我的问题不清楚或不够具体,请说明。我会试着解释一下我在做什么/做得更好。
答案 0 :(得分:0)
你必须将所有变量的大向量分成每个神经元变量的子数组,用它们的变量调用每个文件,然后连接得到的方向向量。
如果神经元的行为相似,你应该考虑让一个方法(文件)内部有一个循环用于神经元功能 - 方向的内部部分,之后可能是交互术语的双循环。将连接信息放入数据结构中以便灵活地更改它。
答案 1 :(得分:0)
我对MATLAB的经验不多,但我在MATLAB中看到的一种方法是为每个需要存储的状态变量创建一个列表(1D矩阵?)。例如,实现Hodgkin-Huxley神经元需要一个矩阵,每个矩阵用于选择变量' m' h'和' n'以及一个用于' V&#39 ;.每个列表与模拟中的神经元数量一样长。然后使列表中的第i个位置对应于第i个神经元。
模拟的流程如下所示(让N为神经元的数量):
对于模拟中的每个时间步,
1)让" index = 1'
2)使用每个列表/状态变量矩阵中的第一个元素作为参数调用文件中的ODE系统。
3)在索引中添加一个。如果索引现在大于N,则将时间步长向前移动一步并从(1)开始。
听起来你还需要使用矩阵来存储彼此影响的信息。虽然我知道有很多人这样做,但是在更大规模上看起来很麻烦(特别是如果你将神经元与不同的ODE组合在一起)。从长远来看,我强烈建议迁移到更加面向对象的方法。它们应该提供一种更简单的方法来绑定'神经元的每个实例及其变量和方程式,以及创建任意数量的神经元都不需要额外的代码。
http://www.mathworks.com/discovery/object-oriented-programming.html