Storing data from a triple for loop in a matrix
Ältere Kommentare anzeigen
Hello! Can someone help me with the following quation?
I want to make a matrix with outputs of a triple for loop. The code is as follows.
First there is a odefunction that is used in the script.
The the script with the function handle:
for i = 1:3 % The for loops runs 27 times because there are 3^3 options.
for j = 1:3
for k = 1:3
odefunc = @(t,y) odeFunction(t,y,Cint, Cwall, R1(i), R2(j), Rwin(k))
% integrate the system of differential equations from tspan(1) to
% tspan(2) with initial conditions y0
[t,y] = ode45(odefunc, tspan, y0);
end
This computes different outputs with 27 possible input options. I want to store these outputs in matrix of
K = zeros(27, 1440);
Akzeptierte Antwort
Weitere Antworten (1)
It isn't completely clear from your description, but assuming the output you want to save is the vector y from each diff eq solution, and that this always has 1440 elements, you could do this:
K = zeros(27,1440); % preallocate
count = 0;
for i = 1:3
for j = 1:3
for k = 1:3
% increment loop counter
count = count + 1
.
.
.
[t,y] = ode45(odefunc, tspan, y0);
K(count,:) = y(:)'; % use y(:)' to make sure it is a row
end
end
end
Kategorien
Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!