How to load a big .txt-file while using ode45

1 view (last 30 days)
Hekseli
Hekseli on 27 Sep 2013
Answered: Hekseli on 27 Sep 2013
Hey!
I am solving a differential equation system with ode45 solver and the problem is that one of the derivatives demands a constant parameter from a big matrix (5x500000), depending on the previous step values in vector x. I can't load the matrix in a differential equation function because then it will be called multiple times and loading takes time.
So where / how should I load this big matrix?
A quick example would be something like this.
function1
[T, X]=ode45(@differ,[0 1],[1 1 1 1]); plot(X(:,1),X(:,2)); hold on;
end
function f = differ(t, x) %x=(x1 x2 x3 4)
A=load('file.txt'); %Now this is not efficient g=9.81;
f = zeros(4,1); f(1) = x(3); f(2) = x(4); f(3) = 0; f(4) = -g*A(i,j); %Here i and j will be determined according to values in x(1) and x(2)
end

Answers (1)

Hekseli
Hekseli on 27 Sep 2013
Global variable seems to offer somekind of solution but I can't believe that it is the most efficient one...

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!