Main Content

empty

지정된 클래스의 빈 배열 만들기

설명

empty 메서드는 지정된 클래스의 빈 배열을 만듭니다. MATLAB®의 빈 배열에 대한 소개는 Empty Arrays 항목을 참조하십시오. 기존 배열이 빈 배열인지 테스트하려면 isempty를 사용하십시오.

A = ClassName.empty는 지정된 클래스로 구성된 0×0 빈 배열을 반환합니다. ClassName을 클래스의 실제 이름으로 바꾸십시오. 빈 배열 동작 방식에 대한 자세한 내용은 MATLAB의 빈 배열 항목을 참조하십시오.

예제

A = ClassName.empty(sz1,...,szN)은 지정된 차원의 빈 배열을 반환합니다. 적어도 하나의 차원은 0이어야 합니다.

예제

A = ClassName.empty(sizeVector)는 지정된 차원의 빈 배열을 반환합니다. 적어도 하나의 차원은 0이어야 합니다.

예제

예제

모두 축소

uint8에 대해 empty 메서드를 크기 지정 없이 호출해 보겠습니다.

A = uint8.empty
A =

  0x0 empty uint8 matrix

빈 배열에 값을 할당하면 비어 있지 않은 배열로 확장됩니다. 빈 배열에 할당하는 값은 배열과 동일한 클래스이거나 해당 클래스로 변환 가능해야 합니다. MATLAB은 배열의 다른 요소를 해당 배열 유형의 디폴트 값으로 채웁니다. uint8의 경우 0입니다.

A(3,3) = 5
A = 3x3 uint8 matrix

   0   0   0
   0   0   0
   0   0   5

비어 있지 않은 배열 초기화하기

비어 있지 않은 배열을 초기화하려면 zeros 또는 ones 같은 함수를 사용하여 초기값으로 배열을 채우십시오. MATLAB에는 null 값이 없으므로, 비어 있지 않은 모든 배열의 모든 요소는 값이 있어야 합니다. 예를 들어 적어도 하나의 차원은 길이가 0이어야 하므로, empty를 사용하여 3×3 배열을 생성할 수 없습니다.

MATLAB에서는 적어도 하나의 차원이 0이면, 0이 아닌 차원 크기를 갖는 빈 배열이 허용됩니다. 0×5 배열 같은 빈 배열은 많은 반복 알고리즘에서 자연스럽게 발생할 수 있으며, 0×0 빈 배열과 동일한 규칙을 따릅니다. 이러한 배열은 클래스를 갖지만 어떠한 요소도 포함하지 않습니다.

코드를 문서화하는 방법으로 0이 아닌 차원 크기를 갖는 빈 배열을 생성할 수 있습니다. 예를 들어 차원이 0×5인 int16형 빈 배열을 만들어 보겠습니다.

A = int16.empty(0,5)
A =

  0x5 empty int16 matrix

A를 정수로 구성된 6×5 행렬(1×5 벡터의 세로 결합을 통해 생성됨)의 초기값으로 사용합니다.

for i = 1:6
    A = [A; randi(9,[1 5],"int16")];
end
A
A = 6x5 int16 matrix

   8   9   2   9   6
   1   3   5   9   9
   2   9   9   5   8
   2   4   9   8   9
   6   1   8   9   7
   7   7   4   6   2

벡터를 사용하여 빈 배열의 차원을 정의합니다.

V = [0 0 6];
Bdouble = double.empty(V)
Bdouble =

  0x0x6 empty double array

입력 인수

모두 축소

배열의 차원으로, 정수로 지정됩니다. 적어도 하나의 차원은 0이어야 합니다. 음의 값은 0으로 처리됩니다. 후행 차원 1은 배열 크기에 포함되지 않습니다.

차원의 벡터로, 정수로 구성된 행 벡터로 지정됩니다. 적어도 하나의 요소는 0이어야 합니다. 음의 값은 0으로 처리됩니다. 후행 차원 1은 배열 크기에 포함되지 않습니다.

출력 인수

모두 축소

빈 배열로, 지정된 클래스와 차원으로 구성된 빈 배열로 반환됩니다.

세부 정보

모두 축소

MATLAB의 빈 배열

MATLAB에서 빈 배열은 크기가 0인 차원이 하나 이상 있는 배열입니다. 빈 배열에는 요소가 없습니다.

empty 메서드를 사용하면 특정 클래스의 배열을 초기화할 수 있습니다. 빈 배열에 특정 값을 할당하여 빈 배열을 비어 있지 않은 배열로 확장할 수 있습니다. 배열에 할당하는 객체는 동일한 클래스이거나 빈 배열의 클래스로 변환 가능해야 합니다. 예를 들어, uint8형의 빈 배열을 만들고 그 배열에 문자열 값을 할당해 보겠습니다.

A = uint8.empty;
A(3,3) = "word"
Unable to perform assignment because value of type 'string' is 
not convertible to 'uint8'.

참고

예를 들어, 빈 배열에는 크기가 0인 차원이 하나 이상 있어야 하므로 empty를 사용하여 3×3 배열을 생성할 수 없습니다. MATLAB에는 null 값이 없으므로, 비어 있지 않은 모든 배열의 모든 요소는 값이 있어야 합니다. 비어 있지 않은 숫자형 배열을 빠르게 초기화하려면 zeros 또는 ones 같은 함수를 사용해 보십시오.

사용자 정의 클래스로 구성된 빈 배열

사용자 정의 클래스로 구성된 빈 배열을 초기화할 수 있습니다. 예를 들어, empty 정적 메서드는 다음과 같이 정의된 ColorInRGB 클래스의 숨겨진 메서드입니다.

classdef ColorInRGB
   properties
      Color (1,3) = [1,0,0];
   end
   methods
      function obj = ColorInRGB(c)
         if nargin > 0
            obj.Color = c;
         end
      end
   end
end

empty 메서드를 호출합니다.

A = ColorInRGB.empty;

이 빈 배열에 값을 할당하여 빈 배열을 비어 있지 않은 배열로 확장할 수 있습니다. MATLAB이 객체로 배열을 채우는 방법에 대한 자세한 내용은 객체 배열을 만들고 초기화하기 항목을 참조하십시오.

빈 배열 식별하기

isempty, size, length 함수를 사용하여 빈 객체 배열을 식별할 수 있습니다. 예를 들어, 이전 섹션에서 정의한 ColorInRGB 클래스로 구성된 빈 배열을 만듭니다.

A = ColorInRGB.empty(0,5);
isempty(A)
ans =

  logical

   1
size(A)
ans =

     0     5
length(A)
ans =

     0

빈 배열 결합

빈 배열은 배열 결합 동작을 따릅니다. 예를 들어, double형의 빈 배열을 만들고 그 배열을 결합하여 두 번째 배열을 만듭니다.

A = double.empty(0,5);
B = [A A]
B = 

  0×10 empty double matrix

  • empty는 모든 비추상 MATLAB 클래스의 숨겨진 메서드이며, 퍼블릭 메서드이고, 정적 메서드입니다. 클래스 정의에서 empty 메서드를 재정의할 수 있습니다.

  • 이 메서드는 빈 배열을 만들 수 있는 특수 구문(double형 배열인 경우 [])이 제공되지 않는 데이터형으로 빈 배열을 만들 때 유용합니다.

버전 내역

R2008a에 개발됨