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일

0 개 추천

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일

0 개 추천

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)]

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

질문:

2019년 3월 16일

편집:

2019년 3월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by