MATLAB Repmat
이 튜토리얼에서는 MATLAB의 repmat()
함수를 사용하여 배열의 반복된 값으로 행렬을 만드는 방법에 대해 설명합니다.
MATLAB repmat()
함수
repmat()
함수는 작은 배열에서 큰 행렬을 생성합니다. 이 함수는 배열의 주어진 값을 반복하여 큰 행렬을 만듭니다.
repmat()
함수에는 세 가지 기본 구문이 있습니다. 첫 번째 구문은 아래에 나와 있습니다.
M = repmat(A,n);
위의 구문은 행과 열 차원에서 A
의 n
복사본을 포함하는 배열을 반환합니다. A
가 행렬인 경우 출력 행렬 M
은 A
의 크기보다 큰 n
을 곱한 행렬 A
의 크기와 같습니다.
repmat()
함수의 첫 번째 인수는 입력 배열이 스칼라, 행렬, 벡터 또는 다차원 배열일 수 있다는 것입니다. 두 번째 인수는 행 및 열 차원에서 입력 배열이 반복되는 횟수를 설정합니다.
repmat()
함수의 두 번째 구문은 다음과 같습니다.
M = repmat(A,r1,...,rN);
위 구문은 각 차원에서 A
사본의 배열을 설명하는 스칼라 목록을 반환합니다. A
가 N
차원의 행렬인 경우 M
의 크기는 A
의 크기보다 큽니다.
r1
은 입력 배열이 첫 번째 차원에서 반복되는 횟수를 정의합니다. repmat()
함수의 세 번째 구문은 다음과 같습니다.
M = repmat(A,r);
위 구문은 행 벡터 r
이 있는 반복 체계에 따라 행과 열 차원의 A
사본을 포함하는 배열을 반환합니다.
예를 들어, 벡터 r
을 사용하여 주어진 배열이나 행렬이 행과 열 차원에서 반복되는 횟수를 정의할 수 있습니다. 여기에는 입력 배열이나 행렬이 출력을 생성하기 위해 반복되는 횟수가 포함됩니다. 행렬.
repmat()
함수를 사용하여 단일 값을 반복하여 행렬을 만들 수 있습니다. 예를 들어 값 5를 포함하는 2x2 행렬을 만들어 보겠습니다.
아래 코드를 참조하십시오.
clc
clear
M = repmat(5,2,2)
출력:
M =
5 5
5 5
clc
및 clear
명령은 위 코드에서 명령 및 작업 영역 창을 지우는 데 사용됩니다. 출력값은 숫자 5만 포함하는 2x2 행렬입니다.
repmat()
함수를 사용하여 다른 행렬의 반복에서 행렬을 만들 수도 있습니다. 예를 들어 diag()
함수를 사용하여 대각 행렬을 만든 다음 대각 행렬을 반복하여 행렬을 만들어 보겠습니다.
아래 코드를 참조하십시오.
clc
clear
D = diag([5 15 25])
M = repmat(D,2,3)
출력:
D =
5 0 0
0 15 0
0 0 25
M =
5 0 0 5 0 0 5 0 0
0 15 0 0 15 0 0 15 0
0 0 25 0 0 25 0 0 25
5 0 0 5 0 0 5 0 0
0 15 0 0 15 0 0 15 0
0 0 25 0 0 25 0 0 25
위의 코드에서 우리는 대각 행렬을 행 차원에서 2번, 열 차원에서 3번 반복했습니다.
입력이 3행이기 때문에 출력 행렬의 크기는 6x9가 되며 출력 행 크기가 6이 되도록 2번 반복하고 입력 행렬은 3열을 가지도록 3번 반복했습니다. 출력 열 크기가 9가 되도록 합니다.
repmat()
함수를 사용하여 3D 행렬을 만들 수도 있습니다. 반복 체계에서 세 가지 값을 사용해야 합니다.
예를 들어 repmat()
함수를 사용하여 6x3x2 행렬을 생성해 보겠습니다. 아래 코드를 참조하십시오.
clc
clear
D = diag([5 15 25])
M = repmat(D,2,1,2)
출력:
D =
5 0 0
0 15 0
0 0 25
M(:,:,1) =
5 0 0
0 15 0
0 0 25
5 0 0
0 15 0
0 0 25
M(:,:,2) =
5 0 0
0 15 0
0 0 25
5 0 0
0 15 0
0 0 25
보시다시피 출력 행렬은 3차원 행렬입니다. 행 벡터의 수평 또는 수직 스택으로 행렬을 만들 수도 있습니다.
예를 들어 차원에서 벡터를 반복하지 않으려면 그 자리에 1을 전달할 수 있습니다. repmat()
함수 내에서 두 번째 인수는 첫 번째 또는 행 차원에 대한 반복 체계를 정의합니다.
세 번째 인수는 두 번째 또는 열 차원에 대한 반복 체계를 정의합니다.
예를 들어, 행 벡터의 수평 스택이 있는 행렬을 생성해 보겠습니다. 아래 코드를 참조하십시오.
clc
clear
D = (1:5)'
M = repmat(D,1,5)
출력:
D =
1
2
3
4
5
M =
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
위의 코드에서는 주어진 벡터를 열 벡터로 변환하여 수평 스택을 생성했지만 수직 스택의 경우 주어진 벡터를 전치할 필요가 없습니다.
repmat()
함수를 사용하여 작은 테이블에서 큰 테이블을 만들 수도 있습니다. 예를 들어 table()
함수를 사용하여 테이블을 만들고 첫 번째 테이블에서 또 다른 큰 테이블을 생성해 보겠습니다.
아래 코드를 참조하십시오.
clc
clear
T_1 = table([19; 16],[60; 53],'VariableNames',{'Age' 'Height'})
T_2 = repmat(T_1, 2,2)
출력:
T_1 =
2×2 table
Age Height
___ ______
19 60
16 53
T_2 =
4×4 table
Age Height Age_1 Height_1
___ ______ _____ ________
19 60 19 60
16 53 16 53
19 60 19 60
16 53 16 53
위의 코드에서는 행과 열 차원을 2번 반복하여 더 큰 테이블을 만들었습니다.