how do I pre-allocate the program. It highlights it in red and I am not able to do that. Thanks for helping.

1 Ansicht (letzte 30 Tage)
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 Kommentar
Greg
Greg am 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.

Melden Sie sich an, um zu kommentieren.

Antworten (3)

Guillaume
Guillaume am 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

Dereje
Dereje am 30 Nov. 2017
@Guillame there is an error(Matrix mis-match) on
sol(i) = t;
@Greg I don't understand your point.
  1 Kommentar
Greg
Greg am 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.

Melden Sie sich an, um zu kommentieren.


Dereje
Dereje am 30 Nov. 2017
I have attached my original codes.

Kategorien

Mehr zu Historical Contests finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by