how do I pre-allocate the program. It highlights it in red and I am not able to do that. Thanks for helping.
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
for i=1:numel(rho)-1
rho0=17.1;
zspan = [z(i) z(i+1)];
NS =(rho(i+1)-rho(i))/(z(i+1)-z(i));
[t,v] = ode45(@(t,v)rhs(t,v,NS), zspan, v0);
v0 = [v(end,1) ; v(end,2) ; v(end,3)];
zsol = [zsol;t];
v1sol = [v1sol;v(:,1)];
v2sol = [v2sol;v(:,2)];
v3sol = [v3sol;v(:,3)];
end
1 Commento
Greg
il 30 Nov 2017
Please format your question so we can read it as code. Use the "{} Code" button if you need help with formatting syntax.
Risposte (3)
Guillaume
il 30 Nov 2017
Assuming your ODE returns a 3x3 array:
v1sol = zeros(3, numel(rho) - 1);
v2sol = zeros(3, numel(rho) - 1);
v3sol = zeros(3, numel(rho) - 1);
zsol = zeros(numel(rho) - 1, 1);
rho0=17.1;
for i=1:numel(rho)-1
zspan = [z(i) z(i+1)];
NS =(rho(i+1)-rho(i))/(z(i+1)-z(i));
[t,v] = ode45(@(t,v)rhs(t,v,NS), zspan, v0);
v0 = [v(end,1) ; v(end,2) ; v(end,3)];
zsol(i) = t;
v1sol(:, i) = v(:, 1);
v2sol(:, i) = v(:, 2);
v3sol(:, i) = v(:, 3);
end
1 Commento
Greg
il 30 Nov 2017
I would go ahead and use
nrho = numel(rho) - 1;
Just a little cleaner in my opinion. Nothing to do with pre-allocation.
Dereje
il 30 Nov 2017
1 Commento
Greg
il 30 Nov 2017
Please use the "Comment on this Question" and "Comment on this Answer" links instead of creating a new answer. I know the web form is confusing the first time.
You can also edit your original question to attach the code. This makes it easier for others (people may have the same question you have) to find.
Vedere anche
Categorie
Scopri di più su Historical Contests in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!