m=1;
k=1;
c=1;
x(2)=0;
dx=1;
d2x=-1;
h=0.5;
for i=2:0.1:20
x(i-1)=x(i)-h*dx+(h/2)*d2x;
x(i+1)=(1/(m/h^2)+(c/2*h))*((2*m/h^2-k).*x(i)+(c/2*h-m/h^2).*x(i-1));
end
plot(x)
what is wrong with my code, I am getting an error Subscript indices must either be real positive integers or logicals. As you can see I am trying to get a plot of x(i+1) which depends on x(i) and x(i-1), thanks
appreciate all the help

1 件のコメント

Jan
Jan 2016 年 12 月 6 日
I've formatzted your code using the "{} Code" button. You can do this by your own also.

サインインしてコメントする。

 採用された回答

David Barry
David Barry 2016 年 12 月 6 日

1 投票

You must index into an array/matrix with integer values. In your case you are trying to index into variable x with the variable i but you have asked for i to range from 2 to 20 in 0.1 steps. What are you expecting x(2.1) to give for example?

1 件のコメント

Ismail khalil
Ismail khalil 2016 年 12 月 6 日
I have done this and got an a run indeed, but the answer was very different in value than I expected, but I guess you solved my error, thanks

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および 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!

Translated by