My if statement nestled in for loop isn't working
1 次查看(过去 30 天)
显示 更早的评论
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.
0 个评论
采纳的回答
GEEVARGHESE TITUS
2017-3-3
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!