"Torsten" wrote in message <email@example.com>... > "Qiming " <firstname.lastname@example.org> wrote in message <email@example.com>... > > Hi: > > > > My question is how to retrieve a parameter value inside ode solver? Let's take the control system as an example. I write my own ODE function. Within the ODE function, I compute the control inputs as u=-K*x, where x is the system states and K is a constant matrix. x can be solved by calling ode solver, like ode45. But my question is, how can I get "u"? > > > > I know one solution is that after running the ode solver, then I can write a for loop, like: > > for i = 1 : length(x) > > u(i) = -K*x(i); > > end > > > > Is there any way that I can retrieve u without using the for loop after running ode solver? > > > > Thanks. > > I'd do it the way you suggested (after running the ODE solver), except that you will have to put u=-K*x (the loop from above is incorrect). > > Best wishes > Torsten.
Thanks for your reply. I understand that's one way to retrieve the parameter inside ODE, however, for my real application, I generate a random value inside the ODEfunction. I cannot retrieve the parameter after running the ODE solver since I cannot get the exactly the same random value in my runfile.
I also tried using a counter inside the ODE solver. The weird thing is, the length of the counter is not the same as the length of the time step. How come this happens?