MATLAB에서 3D 행렬에 벡터 추가하기
이 튜토리얼에서는 MATLAB의 cat()
함수를 사용하여 3D 행렬에 벡터를 추가하는 방법에 대해 설명합니다.
MATLAB에서 3D 행렬에 벡터 추가하기
3D 행렬 또는 배열은 2D 행렬 또는 배열과 다릅니다. 2D 행렬 또는 배열에는 첫 번째 차원을 행이라고 하고 두 번째 차원을 열이라고 하는 두 개의 차원이 있습니다.
3D 행렬 또는 배열에는 처음 두 차원이 2D 행렬 또는 배열과 동일한 3차원이 있고 세 번째 차원을 페이지 또는 시트라고 합니다. 간단한 3D 행렬 또는 배열이 아래에 나와 있습니다.
2D 행렬이나 배열에서 각 요소는 특정 위치 또는 행과 열 번호에 배치되며 해당 위치를 사용하여 요소를 가져오고 바꿀 수 있습니다. 3D 행렬이나 배열에서 각 요소는 특정 위치, 행, 열 및 페이지 번호에 배치되며 해당 위치를 사용하여 요소를 가져오고 바꿀 수 있습니다.
예를 들어, 3D 행렬 또는 배열의 첫 번째 요소는 위의 다이어그램에도 표시된 위치 (1,1,1)에 배치됩니다. 3D 행렬의 끝에 벡터를 추가하려면 벡터의 크기는 3D 행렬에 있는 각 페이지 또는 3차원의 크기와 같아야 합니다.
예를 들어, 행 1개, 열 2개, 페이지 2개로 구성된 3D 행렬 또는 배열을 생성해 보겠습니다. 아래 코드를 참조하십시오.
clc
clear
MyMatrix = ones(1,2,2)
출력:
MyMatrix(:,:,1) =
1 1
MyMatrix(:,:,2) =
1 1
MATLAB은 3차원에 대한 3D 배열 또는 행렬을 보여줍니다. 위의 예에서 2페이지가 있는 3D 행렬이 있고 각 페이지에는 출력에 표시된 1행 2열의 2D 행렬이 있습니다.
3D 행렬에서 요소를 얻으려면 행, 열 및 페이지 번호와 같은 위치를 지정해야 합니다. 위의 3D 행렬이나 배열의 끝에 다른 벡터를 추가하거나 추가하려면 주어진 차원에 따라 두 행렬을 연결하는 cat()
함수를 사용할 수 있습니다.
cat()
함수에는 첫 번째 인수가 차원 번호이고, 두 번째 인수가 3D 행렬이고, 세 번째 인수가 3D 행렬에 추가하려는 벡터 또는 행렬인 3개의 입력 인수가 있습니다. 우리의 경우 3D 행렬의 끝에 벡터를 추가하려고 합니다. 즉, 마지막 페이지 뒤에 벡터를 추가하려는 것입니다.
cat()
함수는 주어진 벡터를 저장하기 위해 3D 행렬에 다른 페이지를 생성합니다.
예를 들어 cat()
함수를 사용하여 위의 3D 행렬 또는 배열 끝에 벡터를 만들고 추가해 보겠습니다. 아래 코드를 참조하십시오.
MyVector = [5 6];
MyMatrix = ones(1,2,2)
s = "After Adding Another Vector"
MyMatrix = cat(3, MyMatrix, MyVector)
출력:
MyMatrix(:,:,1) =
1 1
MyMatrix(:,:,2) =
1 1
s =
"After Adding Another Vector"
MyMatrix(:,:,1) =
1 1
MyMatrix(:,:,2) =
1 1
MyMatrix(:,:,3) =
5 6
위의 출력에서 볼 수 있듯이 3D 행렬에는 연결 후 3페이지가 있으며 마지막 페이지에는 입력 벡터가 포함됩니다. 성공적인 연결을 위해서는 cat()
함수 내부에 전달한 차원의 크기와 벡터 크기가 같아야 합니다.
위의 예에서는 각 페이지에 하나의 행만 있으므로 오류가 발생하지 않았습니다. 행이 두 개 이상인 3D 행렬이 있는 경우 세 번째 차원 또는 페이지의 크기는 주어진 벡터의 크기와 다릅니다.
이 문제를 해결하기 위해 zeros()
함수를 사용하여 0으로 구성된 벡터를 생성할 수 있습니다. 이 함수는 3차원 또는 페이지와 크기가 동일합니다. 그런 다음 0 행렬의 첫 번째 배열을 주어진 벡터로 바꿀 수 있습니다. . 이제 주어진 벡터는 3D 행렬의 끝에 쉽게 추가하거나 추가할 수 있는 여분의 0이 있는 행렬이 됩니다.
예를 들어 행 2개, 열 2개, 페이지 2개로 구성된 3D 행렬을 만든 다음 위에서 언급한 방법을 사용하여 주어진 벡터를 추가해 보겠습니다. 아래 코드를 참조하십시오.
clc
clear
MyVector = [5 6];
MyMatrix = ones(2,2,2)
NewVector = zeros(2,2)
NewVector(1,:) = MyVector
s = "After Adding Another Vector"
MyMatrix = cat(3, MyMatrix, NewVector)
출력:
MyMatrix(:,:,1) =
1 1
1 1
MyMatrix(:,:,2) =
1 1
1 1
NewVector =
0 0
0 0
NewVector =
5 6
0 0
s =
"After Adding Another Vector"
MyMatrix(:,:,1) =
1 1
1 1
MyMatrix(:,:,2) =
1 1
1 1
MyMatrix(:,:,3) =
5 6
0 0
위의 출력에서 벡터가 3D 행렬에 추가된 것을 볼 수 있지만 크기를 동일하게 만들기 위해 0을 추가해야 했습니다. 열 벡터를 추가하려면 위에서 설명한 것과 동일한 방법을 따라야 합니다.
3D 행렬의 각 페이지에 열이 하나만 있고 그 크기가 입력 열 벡터의 크기와 같으면 cat()
함수를 사용하여 쉽게 추가할 수 있습니다. 3D 행렬에 열이 두 개 이상 있거나 크기가 다른 경우 지정된 열 벡터를 따라 0을 추가하여 크기를 동일하게 만든 다음 사례에서 사용한 것과 동일한 방법을 사용하여 3D 행렬에 추가할 수 있습니다. 행 벡터를 추가하는 것입니다.
3D 매트릭스의 행, 열 또는 전체 페이지를 바꿀 수도 있습니다. 예를 들어 ones()
함수를 사용하여 3D 행렬을 만들고 추가 연산자를 사용하여 첫 번째 페이지의 첫 번째 행을 교체해 보겠습니다.
아래 코드를 참조하십시오.
clc
clear
MyVector = [5 6];
MyMatrix = ones(2,2,2)
s = "After replacing row"
MyMatrix(1,:,1) = MyVector
출력:
MyMatrix(:,:,1) =
1 1
1 1
MyMatrix(:,:,2) =
1 1
1 1
s =
"After replacing row"
MyMatrix(:,:,1) =
5 6
1 1
MyMatrix(:,:,2) =
1 1
1 1
위의 코드에서 우리는 2행, 2열, 2페이지로 구성된 1의 3D 행렬을 만들었습니다. 첫 번째 페이지의 첫 번째 행을 다른 벡터로 교체했습니다.
위의 출력에서 볼 수 있듯이 첫 페이지의 첫 번째 행을 교체했기 때문에 출력에 표시되는 텍스트 전후의 출력이 다릅니다. 대체되는 행 크기와 새 행은 같아야 합니다.
전체 페이지나 차원을 다른 행렬이나 배열로 바꿀 수도 있지만 크기는 같아야 합니다.