How to end function when condition is met
이전 댓글 표시
I havent used Matlab for a while and was never really good at it. I need your help
How to terminate the function, as soon as NL reaches the number 1?
I think i have to put the 'if' and 'return' above the function but then Matlab tells me, that it doesnt know NL yet.
What am I doing wrong?
function NL = NLDestillationsblase(x, x0, Omega1)
NL = (x/x0).^(1./(Omega1-1)).*((1-x0)./(1-x)).^(Omega1./(Omega1-1))
if NL >= 1
return
end
end
댓글 수: 4
Walter Roberson
2020년 11월 9일
편집: Walter Roberson
2020년 11월 9일
return is fine for this purpose. There is no obvious error in your code... though clearly you would be wanting to loop.
Generally speaking if you are looping, it is cleaner to break the loop and just let the code reach the end of the function instead of returning.
Marcel Langner
2020년 11월 9일
David Hill
2020년 11월 9일
That is because x is an array.
function NL = NLDestillationsblase(x, x0, Omega1)
NL = (x/x0).^(1./(Omega1-1)).*((1-x0)./(1-x)).^(Omega1./(Omega1-1))
NL=NL(NL<1);
end
Marcel Langner
2020년 11월 9일
편집: Marcel Langner
2020년 11월 9일
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!