다음: 낱칸 배열인 문자열, 이전: 낱칸 배열 만들기, 상위 문서: 낱칸 배열   [차례][찾아보기]


6.3.3 낱칸 배열 색인

낱칸 배열의 기본 용법에 있는 것처럼, 원소를 ‘{’와 ‘}’ 연산자로 추출합니다. 낱칸 배열인 부분열 추출 및 접근을 하려면, ‘(’와 ‘)’ 연산자를 사용하여야 합니다. 아래 예시가 두 방법의 차이를 보여줍니다.

c = {"1", "2", "3"; "x", "y", "z"; "4", "5", "6"};
c{2,3}
     ⇒ ans = z

c(2,3)
     ⇒ ans =
        {
          [1,1] = z
        }

즉, ‘{}’으로는 낱칸 배열의 원소에 접근하고, ‘()’으로는 낱칸 배열인 부분열에 접근합니다.

 ‘(’와 ‘)’ 연산자는 낱칸 배열을 다차원 배열에서와 같이 색인합니다. 예를 들자면, 아래 예시의 낱칸 배열에서 첫 번째와 세 번째 열의 모든 행은 0으로 설정됩니다.

c(:, [1, 3]) = {0}
     ⇒ =
        {
          [1,1] = 0
          [2,1] = 0
          [3,1] = 0
          [1,2] = 2
          [2,2] = y
          [3,2] = 5
          [1,3] = 0
          [2,3] = 0
          [3,3] = 0
        }

위 작업은 아래로도 가능함에 유의하십시오.

c(:, [1, 3]) = 0;

스칼라 ‘0’이 자동으로 낱칸 배열 ‘{0}’으로 바뀌고, 부분열 c에 할당됩니다.

()’으로 낱칸 배열을 색인하는 다른예시로써, 아래 명령으로 낱칸 배열의 첫 번째 행과 두 번째 행을 서로 바꿉니다.

c = {1, 2, 3; 4, 5, 6};
c([1, 2], :) = c([2, 1], :)
     ⇒ =
        {
          [1,1] =  4
          [2,1] =  1
          [1,2] =  5
          [2,2] =  2
          [1,3] =  6
          [2,3] =  3
        }

{’와 ‘}’를 사용하여 낱칸 배열의 여러 원소에 접근하면, 요청한 원소 모두를 반점으로 분리한 목록으로 반환합니다.(반점  분리 목록 참고) 아래처럼 ‘{’ 와 ‘}’ 연산자로 위 예시의 첫 번째와 두 번째 행의 교환을 되돌립니다.

[c{[1,2], :}] = deal (c{[2, 1], :})
     ⇒ =
        {
          [1,1] =  1
          [2,1] =  4
          [1,2] =  2
          [2,2] =  5
          [1,3] =  3
          [2,3] =  6
        }

구조체 배열과 수치 배열에서 빈 행렬 ‘[]’은 낱칸 배열에서 원소를 지우는 데에 씁니다.

x = {"1", "2"; "3", "4"};
x(1, :) = []
     ⇒ x =
        {
          [1,1] = 3
          [1,2] = 4
        }

아래 예시는 낱칸 배열 원소의 내용은 지우되 공간은 남기는 방법을 보여줍니다.

x = {"1", "2"; "3", "4"};
x(1, :) = {[]}
⇒ x =
      {
        [1,1] = [](0x0)
        [2,1] = 3
        [1,2] = [](0x0)
        [2,2] = 4
      }

색인 연산자는 낱칸 배열에 작동하며, 낱칸 배열에 담긴 객체에는 작동하지 않습니다. 반대로, cellindexmat는 행렬 방식으로 작동하여 각 낱칸 배열의 낱칸에 담긴 객체를 색인하고, 요청한 값을 반환합니다.

세로 = cellindexmat (가로, 색인_매개변수)

낱칸 배열에서 행렬 방식 색인을 합니다.

행렬인 낱칸 배열 가로를 주면 아래처럼 처리합니다.

Y = cell (size (X));
for i = 1:numel (X)
  Y{i} = X{i}(varargin{1}, varargin{2}, …, varargin{N});
endfor

색인 매개변수에 스칼라(2), 배열([1, 3]), 범위(1:3), 쌍점 연산자(":")가 가능합니다. 단, 색인 예약어 end는 불가능합니다.

같이 보기: cellslices, cellfun.


다음: 낱칸 배열인 문자열, 이전: 낱칸 배열 만들기, 상위 문서: 낱칸 배열   [차례][찾아보기]