Main Content

eq, ==

동일성(Equality) 확인

설명

예제

A == B는 입력값 AB가 같은 경우 요소가 논리값 1(true)로 설정된 논리형 배열 또는 논리값 테이블을 반환하고, 그렇지 않은 경우 요소는 논리값 0(false)입니다. 테스트에서는 숫자형 배열의 실수부와 허수부를 모두 비교합니다. eqA 또는 BNaN 또는 정의되지 않은 categorical형 요소 같은 누락값이 있는 경우 논리값 0(false)을 반환합니다.

eq(A,B)A == B를 실행하는 또 다른 방법이지만 거의 사용되지 않습니다. 이 표현식은 클래스에 대한 연산자 오버로드를 지원합니다.

예제

모두 축소

실수와 허수를 모두 포함하는 두 개의 벡터를 만든 다음 두 벡터가 동일한지 비교합니다.

A = [1+i 3 2 4+i];
B = [1 3+i 2 4+i];
A == B
ans = 1x4 logical array

   0   0   1   1

eq 함수는 실수부와 허수부가 동일한지 테스트하고 두 부분이 모두 동일한 경우에만 논리값 1(true)을 반환합니다.

문자형 벡터를 만듭니다.

M = 'magenta';

==를 사용하여 특정 문자가 있는지 테스트합니다.

M == 'e'
ans = 1x7 logical array

   0   0   0   1   0   0   0

논리값 1(true)은 문자 'e'가 있음을 나타냅니다.

두 개의 값 'heads''tails'로 categorical형 배열을 만듭니다.

A = categorical({'heads' 'heads' 'tails'; 'tails' 'heads' 'tails'})
A = 2x3 categorical
     heads      heads      tails 
     tails      heads      tails 

'heads' 범주에서 모든 값을 찾습니다

A == 'heads'
ans = 2x3 logical array

   1   1   0
   0   1   0

논리값 1(true)은 범주에 값이 있음을 나타냅니다.

A의 행이 동일한지 비교합니다.

A(1,:) == A(2,:)
ans = 1x3 logical array

   0   1   1

논리값 1(true)은 행의 범주 값이 동일한 경우를 나타냅니다.

십진수 텍스트로 표현된 많은 숫자들은 이진 부동소수점 숫자로 정확히 표현할 수 없습니다. 이로 인해 == 연산자가 나타내는 결과에 약간의 차이가 생기게 됩니다.

십진수로 표현된 숫자에 뺄셈 연산을 몇 번 수행하고 결과를 C에 저장합니다.

C = 0.5-0.4-0.1
C = -2.7756e-17

정확한 십진 산술 연산의 경우 C정확히 0이어야 합니다. 그런데 이렇게 작은 값으로 결과가 나타난 것은 이진 부동소수점 산술의 특징 때문입니다.

C0이 동일한지 비교합니다.

C == 0
ans = logical
   0

== 대신 허용오차 tol을 사용하여 부동소수점 숫자를 비교합니다.

tol = eps(0.5);
abs(C-0) < tol
ans = logical
   1

두 숫자 C00.5 근처의 연속된 두 부동소수점 숫자 간의 거리보다 서로 더 가까이 있습니다. 많은 경우, C0처럼 동작할 수 있습니다.

datetime형 배열의 요소를 비교합니다.

서로 다른 표준 시간대의 datetime형 배열을 두 개 만듭니다.

t1 = [2014,04,14,9,0,0;2014,04,14,10,0,0];
A = datetime(t1,'TimeZone','America/Los_Angeles');
A.Format = 'd-MMM-y HH:mm:ss Z'
A = 2x1 datetime
   14-Apr-2014 09:00:00 -0700
   14-Apr-2014 10:00:00 -0700

t2 = [2014,04,14,12,0,0;2014,04,14,12,30,0];
B = datetime(t2,'TimeZone','America/New_York');
B.Format = 'd-MMM-y HH:mm:ss Z'
B = 2x1 datetime
   14-Apr-2014 12:00:00 -0400
   14-Apr-2014 12:30:00 -0400

A의 요소와 B의 요소가 같은 위치를 확인합니다.

A==B
ans = 2x1 logical array

   1
   0

R2023a 이상

두 개의 테이블을 만든 다음 둘을 비교합니다. 행 이름(두 테이블에 모두 있는 경우)과 변수 이름은 동일해야 하지만, 순서는 같지 않아도 됩니다. 출력값의 행과 변수는 첫 번째 입력값과 순서가 동일합니다.

A = table([1;2],[3;4],VariableNames=["V1","V2"],RowNames=["R1","R2"])
A=2×2 table
          V1    V2
          __    __

    R1    1     3 
    R2    2     4 

B = table([4;2],[3;1],VariableNames=["V2","V1"],RowNames=["R2","R1"])
B=2×2 table
          V2    V1
          __    __

    R2    4     3 
    R1    2     1 

A == B
ans=2×2 table
           V1       V2  
          _____    _____

    R1    true     false
    R2    false    true 

입력 인수

모두 축소

피연산자로, 스칼라, 벡터, 행렬, 다차원 배열, 테이블 또는 타임테이블로 지정됩니다. 입력 인수 AB는 동일한 크기이거나 호환되는 크기를 가져야 합니다. 후자의 예로는 AM×N 행렬이고 B가 스칼라이거나 1×N 행 벡터인 경우를 들 수 있습니다. 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오.

모든 유형의 숫자형 입력값을 비교할 수 있으며, 비교 시 유형 변환으로 인한 정밀도 손실이 발생하지 않습니다.

  • 한쪽 입력값이 categorical형 배열인 경우 다른 쪽 입력값은 categorical형 배열, 문자형 벡터로 구성된 셀형 배열 또는 단일 문자형 벡터일 수 있습니다. 단일 문자형 벡터는 다른 쪽 입력값과 동일한 크기의 문자형 벡터로 구성된 셀형 배열로 확장됩니다. 양쪽 입력값이 모두 순서형 categorical형 배열인 경우 이 입력값들은 순서를 포함하여 범주 집합이 동일해야 합니다. 양쪽 입력값이 순서형이 아닌 categorical형 배열인 경우 범주가 각기 다를 수 있습니다. 자세한 내용은 categorical형 배열 요소 비교하기 항목을 참조하십시오.

  • 한쪽 입력값이 datetime형 배열인 경우 다른 쪽 입력값은 datetime형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열일 수 있습니다.

  • 한쪽 입력값이 duration형 배열인 경우 다른 쪽 입력값은 duration형 배열이거나 숫자형 배열일 수 있습니다. 연산자는 각 숫자형 값을 표준 24시간 일수로 처리합니다.

  • 한쪽 입력값이 string형 배열인 경우 다른 쪽 입력값은 string형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열일 수 있습니다. AB의 대응하는 요소는 사전식(Lexicographically)으로 비교됩니다.

테이블이거나 타임테이블인 입력값은 다음 조건을 충족해야 합니다. (R2023a 이후)

  • 입력값이 테이블 또는 타임테이블인 경우 해당 테이블의 모든 변수는 연산을 지원하는 데이터형을 가져야 합니다.

  • 입력값 중 하나만 테이블 또는 타임테이블인 경우 다른 입력값은 숫자형 배열이거나 논리형 배열이어야 합니다.

  • 두 입력값이 모두 테이블 또는 타임테이블인 경우에는 다음을 충족해야 합니다.

    • 두 입력값의 크기가 동일하거나, 두 입력값 중 하나가 행이 한 개 있는 테이블이어야 합니다.

    • 두 입력값이 모두 동일한 이름의 변수를 가져야 합니다. 그러나 각 입력값의 변수 순서는 다를 수 있습니다.

    • 두 입력값이 모두 테이블이고 두 테이블 모두 행 이름을 갖는 경우 두 테이블의 행 이름은 동일해야 합니다. 그러나 각 입력값의 행 이름 순서는 다를 수 있습니다.

    • 두 입력값이 모두 타임테이블인 경우 두 테이블의 행 시간값은 동일해야 합니다. 그러나 각 입력값의 행 시간값 순서는 다를 수 있습니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | categorical | datetime | duration | table | timetable
복소수 지원 여부:

  • 핸들 객체를 비교하는 경우 ==를 사용하여 객체의 핸들이 동일한지 여부를 테스트하십시오. 핸들이 서로 다른, 객체의 속성값이 동일한지 여부를 확인하려면 isequal을 사용하십시오.

확장 기능

HDL 코드 생성
HDL Coder™를 사용하여 FPGA 및 ASIC 설계를 위한 VHDL, Verilog 및 SystemVerilog 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 확장