读取与解决ODE中的时间步长相对应的文件

时间:2015-07-03 10:53:30

标签: matlab ode sampling

我试图在Matlab中解决ODE,我遇到以下问题: 我的代码如下:

xinit=[0.19;25;0;7];
t=0:768:76800; %% 101 cells
[t1,y]=ode45(@Model_Bio,t,xinit);

在函数@Model_Bio中,我有一个参数,我需要读取每个时间步的相应值(101个值)! 所以,我的@Model_Bio在某种程度上如下:

load 'mydata'
a=mydata;    
.....

问题在于,当我执行ode45(@ Model_Bio,t,xinit)时,它会使用自动时间步骤调用我的函数(例如50次!)我的问题是我无法为每个函数分配值我的时间步(101)! 另外,我认为改变颂歌的时间步骤与我的101步骤相同并不是一个好主意! 任何帮助我的人都非常感激!

1 个答案:

答案 0 :(得分:1)

好像你需要提供一个数据包装器来插入任意t,例如

my_interp = @(t)interp1(my_data_t,my_data_x,t)

http://se.mathworks.com/help/matlab/ref/interp1.html

然后根据my_interp

实现您的RHS(@Model_Bio)