Azzera filtri
Azzera filtri

My if statement nestled in for loop isn't working

1 visualizzazione (ultimi 30 giorni)
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.

Risposta accettata

GEEVARGHESE TITUS
GEEVARGHESE TITUS il 3 Mar 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

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements 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!

Translated by