MATLAB-배열
MATLAB에있는 모든 데이터 유형의 모든 변수는 다차원 배열입니다. 벡터는 1 차원 배열이고 행렬은 2 차원 배열입니다.
우리는 이미 벡터와 행렬에 대해 논의했습니다. 이 장에서는 다차원 배열에 대해 설명합니다. 그러나 그 전에 몇 가지 특별한 유형의 배열에 대해 논의하겠습니다.
MATLAB의 특수 배열
이 섹션에서는 특별한 배열을 만드는 몇 가지 함수에 대해 설명합니다. 이러한 모든 함수에 대해 단일 인수는 정사각형 배열을 만들고 이중 인수는 직사각형 배열을 만듭니다.
그만큼 zeros() 함수는 모든 0의 배열을 생성합니다-
예를 들면-
zeros(5)
MATLAB은 위의 문을 실행하고 다음 결과를 반환합니다.
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
그만큼 ones() 함수는 모든 것의 배열을 생성합니다-
예를 들면-
ones(4,3)
MATLAB은 위의 문을 실행하고 다음 결과를 반환합니다.
ans =
1 1 1
1 1 1
1 1 1
1 1 1
그만큼 eye() 함수는 단위 행렬을 만듭니다.
예를 들면-
eye(4)
MATLAB은 위의 문을 실행하고 다음 결과를 반환합니다.
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
그만큼 rand() 함수는 (0,1)에 균일하게 분포 된 난수 배열을 생성합니다-
예를 들면-
rand(3, 5)
MATLAB은 위의 문을 실행하고 다음 결과를 반환합니다.
ans =
0.8147 0.9134 0.2785 0.9649 0.9572
0.9058 0.6324 0.5469 0.1576 0.4854
0.1270 0.0975 0.9575 0.9706 0.8003
매직 스퀘어
ㅏ magic square 요소가 행 방향, 열 방향 또는 대각선으로 추가 될 때 동일한 합계를 생성하는 정사각형입니다.
그만큼 magic()함수는 매직 스퀘어 배열을 만듭니다. 정사각형의 크기를 제공하는 단수 인수가 필요합니다. 인수는 3보다 크거나 같은 스칼라 여야합니다.
magic(4)
MATLAB은 위의 문을 실행하고 다음 결과를 반환합니다.
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
다차원 배열
2 차원 이상의 배열을 MATLAB에서는 다차원 배열이라고합니다. MATLAB의 다차원 배열은 일반 2 차원 행렬의 확장입니다.
일반적으로 다차원 배열을 생성하려면 먼저 2 차원 배열을 만들고 확장합니다.
예를 들어 2 차원 배열 a를 만들어 보겠습니다.
a = [7 9 5; 6 1 9; 4 3 2]
MATLAB은 위의 문을 실행하고 다음 결과를 반환합니다.
a =
7 9 5
6 1 9
4 3 2
배열 a 는 3x3 배열입니다. 우리는에 세 번째 차원을 추가 할 수 있습니다 같은 값을 제공하여, -
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
MATLAB은 위의 문을 실행하고 다음 결과를 반환합니다.
a =
ans(:,:,1) =
0 0 0
0 0 0
0 0 0
ans(:,:,2) =
1 2 3
4 5 6
7 8 9
ones (), zeros () 또는 rand () 함수를 사용하여 다차원 배열을 만들 수도 있습니다.
예를 들면
b = rand(4,3,2)
MATLAB은 위의 문을 실행하고 다음 결과를 반환합니다.
b(:,:,1) =
0.0344 0.7952 0.6463
0.4387 0.1869 0.7094
0.3816 0.4898 0.7547
0.7655 0.4456 0.2760
b(:,:,2) =
0.6797 0.4984 0.2238
0.6551 0.9597 0.7513
0.1626 0.3404 0.2551
0.1190 0.5853 0.5060
우리는 또한 사용할 수 있습니다 cat()다차원 배열을 만드는 함수. 지정된 차원을 따라 배열 목록을 연결합니다.
cat () 함수의 구문은 다음과 같습니다.
B = cat(dim, A1, A2...)
어디,
B 는 생성 된 새 어레이입니다.
A1 , A2 , ...는 연결할 배열입니다.
dim 은 배열을 연결하는 차원입니다.
예
스크립트 파일을 만들고 다음 코드를 입력하십시오.
a = [9 8 7; 6 5 4; 3 2 1];
b = [1 2 3; 4 5 6; 7 8 9];
c = cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])
파일을 실행하면 다음이 표시됩니다.
c(:,:,1) =
9 8 7
6 5 4
3 2 1
c(:,:,2) =
1 2 3
4 5 6
7 8 9
c(:,:,3) =
2 3 1
4 7 8
3 9 0
배열 함수
MATLAB은 배열 내용을 정렬, 회전, 치환, 모양 변경 또는 이동하는 다음 함수를 제공합니다.
함수 | 목적 |
---|---|
길이 | 벡터 길이 또는 가장 큰 배열 차원 |
ndims | 배열 차원 수 |
누멜 | 배열 요소 수 |
크기 | 배열 차원 |
iscolumn | 입력 값이 열 벡터인지 확인 |
비었다 | 배열이 비어 있는지 확인 |
ismatrix | 입력 값이 행렬인지 확인 |
Isrow | 입력 값이 행 벡터인지 확인 |
isscalar | 입력 값이 스칼라인지 확인 |
isvector | 입력 값이 벡터인지 확인 |
blkdiag | 입력 인수에서 블록 대각 행렬을 생성합니다. |
순환 이동 | 배열을 원형으로 이동 |
ctranspose | 복합 켤레 전치 |
진단 | 대각선 행렬과 행렬의 대각선 |
Flipdim | 지정된 차원을 따라 배열을 뒤집습니다. |
플립 | 행렬을 왼쪽에서 오른쪽으로 뒤집습니다. |
Flipud | 매트릭스를 위아래로 뒤집습니다. |
ipermute | ND 배열의 순방향 차원을 반대로합니다. |
영구히하다 | ND 어레이의 차원 재정렬 |
repmat | 복제 및 타일 배열 |
모양을 바꾸다 | 배열 형태 변경 |
rot90 | 행렬을 90도 회전 |
시프트 | 치수 이동 |
분류 | 집합 요소가 정렬 된 순서인지 확인 |
종류 | 오름차순 또는 내림차순으로 배열 요소 정렬 |
정렬 | 오름차순으로 행을 정렬합니다. |
압착 | 단일 치수를 제거합니다. |
바꾸어 놓다 | 바꾸어 놓다 |
벡터화 | 표현 벡터화 |
예
다음 예는 위에서 언급 한 일부 기능을 보여줍니다.
Length, Dimension and Number of elements −
스크립트 파일을 만들고 다음 코드를 입력하십시오.
x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9];
length(x) % length of x vector
y = rand(3, 4, 5, 2);
ndims(y) % no of dimensions in array y
s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];
numel(s) % no of elements in s
파일을 실행하면 다음 결과가 표시됩니다.
ans = 8
ans = 4
ans = 23
Circular Shifting of the Array Elements −
스크립트 파일을 만들고 다음 코드를 입력하십시오.
a = [1 2 3; 4 5 6; 7 8 9] % the original array a
b = circshift(a,1) % circular shift first dimension values down by 1.
c = circshift(a,[1 -1]) % circular shift first dimension values % down by 1
% and second dimension values to the left % by 1.
파일을 실행하면 다음 결과가 표시됩니다.
a =
1 2 3
4 5 6
7 8 9
b =
7 8 9
1 2 3
4 5 6
c =
8 9 7
2 3 1
5 6 4
배열 정렬
스크립트 파일을 만들고 다음 코드를 입력하십시오.
v = [ 23 45 12 9 5 0 19 17] % horizontal vector
sort(v) % sorting v
m = [2 6 4; 5 3 9; 2 0 1] % two dimensional array
sort(m, 1) % sorting m along the row
sort(m, 2) % sorting m along the column
파일을 실행하면 다음 결과가 표시됩니다.
v =
23 45 12 9 5 0 19 17
ans =
0 5 9 12 17 19 23 45
m =
2 6 4
5 3 9
2 0 1
ans =
2 0 1
2 3 4
5 6 9
ans =
2 4 6
3 5 9
0 1 2
셀 어레이
셀형 배열은 각 셀이 서로 다른 차원 및 데이터 유형의 배열을 저장할 수있는 인덱싱 된 셀의 배열입니다.
그만큼 cell함수는 셀형 배열을 만드는 데 사용됩니다. 셀 함수의 구문은 다음과 같습니다.
C = cell(dim)
C = cell(dim1,...,dimN)
D = cell(obj)
어디,
C 는 셀형 배열입니다.
dim 은 스칼라 정수 또는 셀형 배열 C의 차원을 지정하는 정수 벡터입니다.
dim1, ..., dimN 은 C의 차원을 지정하는 정수 스칼라입니다.
obj 는 다음 중 하나입니다-
- Java 배열 또는 객체
- System.String 또는 System.Object 유형의 .NET 배열
예
스크립트 파일을 만들고 다음 코드를 입력하십시오.
c = cell(2, 5);
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}
파일을 실행하면 다음 결과가 표시됩니다.
c =
{
[1,1] = Red
[2,1] = 1
[1,2] = Blue
[2,2] = 2
[1,3] = Green
[2,3] = 3
[1,4] = Yellow
[2,4] = 4
[1,5] = White
[2,5] = 5
}
셀형 배열의 데이터 액세스
셀형 배열의 요소를 참조하는 방법에는 두 가지가 있습니다.
- 셀 집합을 참조하기 위해 첫 번째 대괄호 ()로 인덱스를 묶습니다.
- 인덱스를 중괄호 {}로 묶어 개별 셀 내의 데이터를 참조합니다.
인덱스를 첫 번째 대괄호로 묶으면 셀 집합을 나타냅니다.
매끄러운 괄호 안의 셀형 배열 인덱스는 셀 집합을 나타냅니다.
예를 들면-
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c(1:2,1:2)
MATLAB은 위의 문을 실행하고 다음 결과를 반환합니다.
ans =
{
[1,1] = Red
[2,1] = 1
[1,2] = Blue
[2,2] = 2
}
중괄호로 인덱싱하여 셀의 내용에 액세스 할 수도 있습니다.
예를 들면-
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c{1, 2:4}
MATLAB은 위의 문을 실행하고 다음 결과를 반환합니다.
ans = Blue
ans = Green
ans = Yellow