What am I doing wrong? (Trying to construct a while loop)
조회 수: 4 (최근 30일)
이전 댓글 표시
V0=10
h_bar_SQ=0.076
E=0:0.1:10
a=0.3
Mass=1
alpha=sqrt(2.*Mass.*E/h_bar_SQ);
beta=sqrt(2.*Mass.*(V0-E)/h_bar_SQ);
F_even=beta.*cos(alpha.*a)-alpha.*sin(alpha.*a)
E=fzero(F_even)
while
E=fzero(F_even);
if
E=Nan;
break
else
a=a-0.010;
end
end
>> scriptmatlab Error: File: scriptmatlab.m Line: 10 Column: 7 Expression or statement is incomplete or incorrect.
>> scriptmatlab Error: File: scriptmatlab.m Line: 12 Column: 7 Expression or statement is incomplete or incorrect.
Line 10 is where is says while and line 12 is where it says if
답변 (3개)
Wayne King
2013년 11월 14일
편집: Wayne King
2013년 11월 14일
One thing is your missing an "end"
if true
% code
endV0=10
h_bar_SQ=0.076
E=0:0.1:10
a=0.3
Mass=1
alpha=sqrt(2.*Mass.*E/h_bar_SQ);
beta=sqrt(2.*Mass.*(V0-E)/h_bar_SQ);
F_even=beta.*cos(alpha.*a)-alpha.*sin(alpha.*a)
E=fzero(F_even)
while
E=fzero(F_even);
if
E=Nan;
break
else
a=a-0.010;
end
end
end
You were missing an "end" for your initial if statement. The other thing is what kind of while statement are you trying to construct here? fzero() returns a value. What condition are you trying to test?
How about something like
while ~isnan(fzero( ))
Walter Roberson
2013년 11월 14일
Your syntax
if
E=Nan;
break
else
a=a-0.010;
end
is not valid. "if" needs to be followed by a condition, and E=Nan; is not a condition.
댓글 수: 0
Richard
2013년 11월 14일
댓글 수: 1
Walter Roberson
2013년 11월 14일
Please use "Comment on this Answer" instead of creating new Answers.
while true
do a computation
if result of computation has some property
break
end
change something about one or more of the variables involved in the computation
end
참고 항목
카테고리
Help Center 및 File Exchange에서 Performance and Memory에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!