My if statement nestled in for loop isn't working

1 Ansicht (letzte 30 Tage)
d c
d c am 3 Mär. 2017
Kommentiert: d c am 4 Mär. 2017
When i run the following code, it calculates values x and y only for M=3. I want to calculate x and y for each of M=1,2,3.
%
x(1)=0;
y(1)=1;
for M=1:3
if M==1
h=0.01;
elseif M==2
h=0.1;
elseif M==3
h=0.5;
end
N=1/h;
for i=1:N
x(i+1)=x(i)+h;
y(i+1)=y(i)+h*(x(i)+y(i));
end
end
Also, since M=3 this would imply h=0.5 (and so N=2) and thus x and y would be 1x3 vectors. However, this is not the case; x and y are returned as 1x101 vectors which suggests it is using the value h=0.01. I'm really lost on why this happens, any help would be appreciated.

Akzeptierte Antwort

GEEVARGHESE TITUS
GEEVARGHESE TITUS am 3 Mär. 2017
I have just modified the code to get the output, and the final values for different values of M are stored in a cell.
clear all;
for M=1:3
clear x;
clear y;
x(1)=0;
y(1)=1;
if M==1
h=0.01;
elseif M==2
h=0.1;
elseif M==3
h=0.5;
end
N=1/h;
for i=1:N
x(i+1)=x(i)+h;
y(i+1)=y(i)+h*(x(i)+y(i));
end
x1{M}=x;
y1{M}=y;
end

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements 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