필터 지우기
필터 지우기

if loop error in MALAB

조회 수: 1 (최근 30일)
ali hassan
ali hassan 2022년 2월 2일
댓글: Steven Lord 2022년 2월 2일
i am using the following if loop but it is not executing:
n=[]
if n==[]
sprintf('a')
end
it dose not print 'a'
  댓글 수: 2
ali hassan
ali hassan 2022년 2월 2일
편집: ali hassan 2022년 2월 2일
but why it is not working that way?@James Tursa
Steven Lord
Steven Lord 2022년 2월 2일
From the documentation page: "if expression, statements, end evaluates an expression, and executes a group of statements when the expression is true. An expression is true when its result is nonempty and contains only nonzero elements (logical or real numeric). Otherwise, the expression is false."
Is your expression nonempty and does it contain only nonzero elements?
n = [];
n == []
ans = 0×0 empty logical array
Your expression is empty so the statements inside the if block are not executed.
If you look at the suggestion from James Tursa:
isempty(n)
ans = logical
1
This is nonempty and it contains only nonzero elements. Therefore the if statement's expression is true and so the statements inside the if block are executed.

댓글을 달려면 로그인하십시오.

채택된 답변

James Tursa
James Tursa 2022년 2월 2일
Change your test to
if isempty(n)

추가 답변 (0개)

카테고리

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