if, elseif, else
조건이 true인 경우 명령문 실행
구문
ifexpression
statements
elseifexpression
statements
elsestatements
end
설명
예제
조건부 할당을 위해 if, elseif, else 사용
1로 이루어진 행렬을 만듭니다.
nrows = 4; ncols = 6; A = ones(nrows,ncols);
행렬을 순환하면서 각 요소에 새 값을 할당합니다. 주대각선에는 2
를, 인접한 대각선에는 -1
을, 다른 나머지에는 0
을 할당합니다.
for c = 1:ncols for r = 1:nrows if r == c A(r,c) = 2; elseif abs(r-c) == 1 A(r,c) = -1; else A(r,c) = 0; end end end A
A = 4×6
2 -1 0 0 0 0
-1 2 -1 0 0 0
0 -1 2 -1 0 0
0 0 -1 2 -1 0
배열 비교
배열에 대한 관계 연산자를 포함하는 표현식(예: A > 0
)은 결과의 모든 요소가 0이 아닌 경우에만 true입니다.
any
함수를 사용하여 결과 중에 true가 있는지 테스트합니다.
limit = 0.75; A = rand(10,1)
A = 10×1
0.8147
0.9058
0.1270
0.9134
0.6324
0.0975
0.2785
0.5469
0.9575
0.9649
if any(A > limit) disp('There is at least one value above the limit.') else disp('All values are below the limit.') end
There is at least one value above the limit.
배열의 동일성 확인
==
연산자 대신 isequal
을 사용하여 배열을 비교하여 배열이 동일한지 테스트합니다. ==
를 사용하면 배열의 크기가 다를 경우 오류가 발생합니다.
두 개의 배열을 만듭니다.
A = ones(2,3); B = rand(3,4,5);
size(A)
와 size(B)
가 동일하면 배열을 결합(Concatenate)하고, 그렇지 않으면 경고를 표시하고 빈 배열을 반환합니다.
if isequal(size(A),size(B)) C = [A; B]; else disp('A and B are not the same size.') C = []; end
A and B are not the same size.
문자형 벡터 비교하기
strcmp
를 사용하여 문자형 벡터를 비교합니다. ==
을 사용하여 동일성을 테스트하면 문자형 벡터의 크기가 다를 경우 오류가 발생합니다.
reply = input('Would you like to see an echo? (y/n): ','s'); if strcmp(reply,'y') disp(reply) end
부등식의 값 테스트하기
값이 0이 아닌지 확인합니다. ~=
연산자를 사용하여 부등식을 테스트합니다.
x = 10; if x ~= 0 disp('Nonzero value') end
Nonzero value
표현식에서 여러 조건 실행
값이 지정된 범위 내에 속하는지 확인
x = 10; minVal = 2; maxVal = 6; if (x >= minVal) && (x <= maxVal) disp('Value within specified range.') elseif (x > maxVal) disp('Value exceeds maximum value.') else disp('Value is below minimum value.') end
Value exceeds maximum value.
세부 정보
표현식
표현식은 관계 연산자(예: <
또는 ==
)와 논리 연산자(예: &&
, ||
또는 ~
)를 포함할 수 있습니다. 논리 연산자 and
와 or
를 사용하여 복합 표현식을 생성합니다. MATLAB®은 연산자 우선 순위 규칙에 따라 복합 표현식을 왼쪽에서 오른쪽으로 평가합니다.
if...end
블록의 조건식 내에서 논리 연산자 &
와 |
는 쇼트서킷 연산자로 동작합니다. 동작은 각각 &&
및 ||
와 동일합니다. &&
와 ||
는 조건식과 조건문에서 항상 쇼트서킷되므로 표현식 내에서 &
와 |
대신 &&
와 ||
를 사용하는 것이 좋습니다. 예를 들어, 다음 명령을 사용할 경우
x = 42; if exist('myfunction.m','file') && (myfunction(x) >= pi) disp('Expressions are true') end
표현식의 첫 번째 부분은 false입니다. 따라서 정의되지 않은 함수 오류가 발생할 것이므로 MATLAB은 표현식의 두 번째 부분을 실행할 필요가 없습니다.
팁
원하는 수만큼
if
문을 중첩할 수 있습니다. 각if
문에는end
키워드가 필요합니다.elseif
키워드에서else
다음에 공백을 추가(예:else if
)하지 마십시오. 공백이 들어가면 자체end
키워드가 필요한if
문이 중첩되어 생성됩니다.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
HDL 코드 생성
HDL Coder™를 사용하여 FPGA나 ASIC 설계용의 Verilog 코드나 VHDL 코드를 생성할 수 있습니다.
if
문의 조건 내에서&
연산자와|
연산자를 사용하지 마십시오. 대신&&
연산자와||
연산자를 사용하십시오.HDL Coder™는
if
문의 조건에서 비 스칼라 표현식을 지원하지 않습니다. 대신all
함수나any
함수를 사용하여 논리형 벡터를 스칼라로 축소하십시오.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
참고 항목
도움말 항목
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)