Main Content

기본 연산에 대해 호환되는 배열 크기

MATLAB®의 대부분의 이진(두 개 입력값) 연산자와 함수는 호환되는 크기의 숫자형 배열을 지원합니다. 모든 차원에 대해 입력값의 차원 크기가 동일하거나 차원 크기 중 하나가 1인 경우 두 입력값의 크기는 호환됩니다. 가장 간단한 경우를 들면, 두 배열의 크기가 정확히 동일하거나 한쪽이 스칼라인 경우 두 배열 크기는 서로 호환됩니다. 요소별 연산 또는 함수를 실행하는 동안 MATLAB은 호환되는 크기의 배열을 동일한 크기가 되도록 묵시적으로 확장합니다.

호환되는 크기의 입력값

2차원 입력값

다음은 크기가 호환되는 스칼라, 벡터, 행렬의 몇 가지 조합입니다.

  • 두 입력값의 크기가 정확히 동일한 경우.

    If A and B are the same size, then the result has the same size.

  • 한쪽 입력값이 스칼라인 경우.

    If A is a matrix and B is a scalar, then the result is the same size as A.

  • 한쪽 입력값이 행렬이고 다른 쪽 입력값은 행 개수가 동일한 열 벡터인 경우.

    If A is 4-by-2 and B is 4-by-1, then the result is 4-by-2.

  • 한쪽 입력값이 열 벡터이고 다른 쪽 입력값은 행 벡터인 경우.

    If B is 2-by-1 and A is 1-by-3, then the result is 2-by-3.

다차원 배열

MATLAB의 모든 배열은 크기가 1인 후행 차원들을 갖습니다. 즉, 다차원 배열의 경우 3×4 행렬은 크기가 3×4×1×1×1인 행렬과 같습니다. 크기가 호환되는 다차원 배열에 대한 예는 다음과 같습니다.

  • 한쪽 입력값이 행렬이고 다른 쪽 입력값은 행 개수와 열 개수가 이와 동일한 3차원 배열인 경우.

    If A is 3-by-4 and B is 3-by-4-by-2, then the result is 3-by-4-by-2.

  • 한쪽 입력값이 행렬이고 다른 쪽 입력값은 3차원 배열인 경우. 차원이 모두 동일하거나 한쪽이 1입니다.

    If A is 4-by-3 and B is 1-by-3-by-3, then the result is 4-by-3-by-3.

빈 배열

차원 크기가 0인 배열이나 빈 배열의 경우 동일한 규칙이 적용됩니다. 출력값의 크기는 1이 아닌 차원의 크기에 의해 결정됩니다. 즉, 크기가 0인 차원은 다른 배열의 크기가 1 또는 0인 차원과 쌍을 이루어야 하며 출력값의 차원 크기는 0입니다.

     A: 1-by-0     
     B: 3-by-1
Result: 3-by-0

호환되지 않는 크기의 입력값

호환되지 않는 크기의 입력값은 동일한 크기가 되도록 묵시적으로 확장할 수 없습니다. 예를 들면 다음과 같습니다.

  • 차원 크기가 서로 일치하지 않고 어느 쪽도 1이 아닌 경우.

    A: 3-by-2
    B: 4-by-2
  • 길이가 서로 동일하지 않은 2개의 비 스칼라 행 벡터.

    A: 1-by-3
    B: 1-by-4

예제

행렬에서 벡터 빼기

벡터-행렬 연산을 단순화하려면 sum, mean, min 등의 차원 함수에서 묵시적 확장을 사용하십시오.

예를 들어, 행렬의 각 열에 대한 평균값을 계산한 다음 각 요소에서 평균값을 뺍니다.

A = magic(3)
A =

     8     1     6
     3     5     7
     4     9     2
C = mean(A)
C =

     5     5     5
A - C
ans =

     3    -4     1
    -2     0     2
    -1     4    -3

행 벡터와 열 벡터 더하기

행 벡터와 열 벡터는 크기가 서로 호환되며, 이 두 벡터에 대한 연산을 수행하면 그 결과로 행렬이 반환됩니다.

예를 들어, 행 벡터와 열 벡터를 더해 보겠습니다. 결과는 bsxfun(@plus,a,b)와 동일합니다.

a = [1 2 3 4]
ans =

     1     2     3     4
b = [5; 6; 7]
ans =

     5
     6
     7
a + b
ans =

     6     7     8     9
     7     8     9    10
     8     9    10    11

참고 항목

관련 항목