Why am I getting this Error Message?

1 回表示 (過去 30 日間)
Zifeng Qiu
Zifeng Qiu 2020 年 6 月 21 日
コメント済み: Zifeng Qiu 2020 年 6 月 21 日
I am trying to take the second order of central difference derivative of a set data that was provided, why did I get an error message like this? I checked the formula many many times and it is correct. Don't know why, since the first order derivative works perfectly.
  1 件のコメント
dpb
dpb 2020 年 6 月 21 日
What is height(j-1) when j==1?

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

回答 (1 件)

Monalisa Pal
Monalisa Pal 2020 年 6 月 21 日
Becasue the loop starts from j = 1 and when you are trying to access height(j-1) on line 6 during slope1 evaluation height(0) becomes undefined. You may follow this link for more description: https://www.mathworks.com/matlabcentral/answers/494553-first-and-second-order-central-difference
In short your for loop can start from 2 and you calculate slope(1) separately. Or you may skip slope1 calculation when j = 1 as follows:
for j = 1:length(height)-1
slope(j) = (height(j+1) - height(j))/h;
if j ~=1
slope1(j) = (height(j+1) - 2*height(j) + height(j-1))/h^2;
end
end
  1 件のコメント
Zifeng Qiu
Zifeng Qiu 2020 年 6 月 21 日
Thank you, this is super helpful

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

カテゴリ

Help Center および File ExchangeScope Variables and Generate Names についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by