Why am I getting this Error Message?

1 次查看(过去 30 天)
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 个)

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

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by