Index exceeds array bounds error

8 次查看(过去 30 天)
Hi there I have a problem with the code below. I am trying to run a for loop for n=100 times where E is a constant and dnew is a 100x1 matrix. I am hoping for this to create S_FEM, an additional 100x1 matrix. However when trying to run I get the error "Index exceeds array bounds". How can I fix this?
for i = 1:n
S_FEM(i) = (E*(dnew(i+1)-dnew(i)))/l;
end
S_FEM(n+1) = S_FEM(n);

采纳的回答

Star Strider
Star Strider 2019-3-16
Consider:
n=100
‘dnew is a 100x1 matrix’
and you are addressing:
dnew(i+1)
that does not exist.
Try this instead:
for i = 1:n-1
S_FEM(i) = (E*(dnew(i+1)-dnew(i)))/l;
end
S_FEM(n+1) = S_FEM(n);

更多回答(1 个)

madhan ravi
madhan ravi 2019-3-16
编辑:madhan ravi 2019-3-16
When the loop iterator becomes n which is 100 , what happens is dnew(i+1) tries to grab 101’st element from the variable dnew which doesn’t exist.
So anyway you don’t need a loop to acquire this task:
S_FEM = E*diff(dnew)/l;
S_FEM = [S_FEM;S_FEM(n)]

类别

Help CenterFile 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