Accessing data from cells inside of cells
Afficher commentaires plus anciens
So I have the code below, which solves an ODE 1000 times with random variables at 10 different intervals (tspans). The result I end up with a 1000x1 cell array of 10x1 cell arrays. Each entry of the 10x1 cell arrays represents a 41x2 numeric array, which is the solution for x1 and x2 in each of the ten tspans. What I would like to end up with is a 410x1000 numeric array, where each column represents ten column 2 entries (x2 solutions) from the 41x2 numeric arrays per each 10x1 cell. Is this possible? Thanks in advance.
n = 1000;
result = cell(n,1);
for k=1:n
tspan1=[0 1];A01=rand;P01=rand;g1=rand;p1=rand;B1=rand;
[t1,x1] = ode45(@(t1,x1) [-g1*x1(1) + p1*x1(1); -x1(1)*x1(2)+ B1*x1(2)], tspan1, [A01 P01]);
tspan2=[1 2];A02=rand;P02=rand;g2=rand;p2=rand;B2=rand;
[t2,x2] = ode45(@(t2,x2) [-g2*x2(1) + p2*x2(1); -x2(1)*x2(2)+ B2*x2(2)], tspan2, [A02 P02]);
tspan3=[2 3];A03=rand;P03=rand;g3=rand;p3=rand;B3=rand;
[t3,x3] = ode45(@(t3,x3) [-g3*x3(1) + p3*x3(1); -x3(1)*x3(2)+ B3*x3(2)], tspan3, [A03 P03]);
tspan4=[3 4];A04=rand;P04=rand;g4=rand;p4=rand;B4=rand;
[t4,x4] = ode45(@(t4,x4) [-g4*x4(1) + p4*x4(1); -x4(1)*x4(2)+ B4*x4(2)], tspan4, [A04 P04]);
tspan5=[4 5];A05=rand;P05=rand;g5=rand;p5=rand;B5=rand;
[t5,x5] = ode45(@(t5,x5) [-g5*x5(1) + p5*x5(1); -x5(1)*x5(2)+ B5*x5(2)], tspan5, [A05 P05]);
tspan6=[5 6];A06=rand;P06=rand;g6=rand;p6=rand;B6=rand;
[t6,x6] = ode45(@(t6,x6) [-g6*x6(1) + p6*x6(1); -x6(1)*x6(2)+ B6*x6(2)], tspan6, [A06 P06]);
tspan7=[6 7];A07=rand;P07=rand;g7=rand;p7=rand;B7=rand;
[t7,x7] = ode45(@(t7,x7) [-g7*x7(1) + p7*x7(1); -x7(1)*x7(2)+ B7*x7(2)], tspan7, [A07 P07]);
tspan8=[7 8];A08=rand;P08=rand;g8=rand;p8=rand;B8=rand;
[t8,x8] = ode45(@(t8,x8) [-g8*x8(1) + p8*x8(1); -x8(1)*x8(2)+ B8*x8(2)], tspan8, [A08 P08]);
tspan9=[8 9];A09=rand;P09=rand;g9=rand;p9=rand;B9=rand;
[t9,x9] = ode45(@(t9,x9) [-g9*x9(1) + p9*x9(1); -x9(1)*x9(2)+ B9*x9(2)], tspan9, [A09 P09]);
tspan10=[9 10];A10=rand;P10=rand;g10=rand;p10=rand;B10=rand;
[t10,x10] = ode45(@(t10,x10) [-g10*x10(1) + p10*x10(1); -x10(1)*x10(2)+ B10*x10(2)], tspan10, [A10 P10]);
x={x1;x2;x3;x4;x5;x6;x7;x8;x9;x10};
result{k} = x;
end
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Ordinary Differential Equations dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!