산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> MATLAB

MATLAB - 배열

MATLAB에서 모든 데이터 유형의 모든 변수는 다차원 배열입니다. 벡터는 1차원 배열이고 행렬은 2차원 배열입니다.

우리는 이미 벡터와 행렬에 대해 논의했습니다. 이 장에서는 다차원 배열에 대해 설명합니다. 그러나 그 전에 몇 가지 특수한 유형의 배열에 대해 논의하겠습니다.

MATLAB의 특수 배열

이 섹션에서는 몇 가지 특수 배열을 만드는 몇 가지 함수에 대해 설명합니다. 이 모든 함수에 대해 단일 인수는 정사각형 배열을 만들고 이중 인수는 직사각형 배열을 만듭니다.

0() 함수는 모두 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

one() 함수는 모든 1의 배열을 생성합니다 -

예를 들어 -

라이브 데모
ones(4,3)

MATLAB은 위의 명령문을 실행하고 다음 결과를 반환합니다 -

ans =
      1     1     1
      1     1     1
      1     1     1
      1     1     1

눈() 함수는 단위 행렬을 생성합니다.

예를 들어 -

라이브 데모
eye(4)

MATLAB은 위의 명령문을 실행하고 다음 결과를 반환합니다 -

ans =
      1     0     0     0
      0     1     0     0
      0     0     1     0
      0     0     0     1

랜드() 함수는 (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

마술의 광장

마법의 광장 요소가 행 방향, 열 방향 또는 대각선으로 추가될 때 동일한 합계를 생성하는 정사각형입니다.

마법() 함수는 마방진 배열을 만듭니다. 정사각형의 크기를 제공하는 단일 인수를 취합니다. 인수는 3보다 크거나 같은 스칼라여야 합니다.

라이브 데모
magic(4)

MATLAB은 위의 명령문을 실행하고 다음 결과를 반환합니다 -

ans =
   16     2     3    13
   5    11    10     8
   9     7     6    12
   4    14    15     1

다차원 배열

MATLAB에서는 3차원 이상의 배열을 다차원 배열이라고 합니다. 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에 3차원을 추가할 수 있습니다. , −

와 같은 값을 제공하여 라이브 데모
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...)

어디,

예시

스크립트 파일을 만들고 다음 코드를 입력하십시오 -

라이브 데모
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 배열 차원의 수
숫자 배열 요소의 수
크기 배열 차원
아이스컬럼 입력이 열 벡터인지 여부를 결정합니다.
비어 있음 배열이 비어 있는지 확인
이매트릭스 입력이 행렬인지 결정
isrow 입력이 행 벡터인지 여부를 결정합니다.
이스칼라 입력이 스칼라인지 여부를 결정합니다.
isvector 입력이 벡터인지 결정
blkdiag 입력 인수에서 블록 대각 행렬을 구성합니다.
순환 이동 배열을 순환적으로 이동
c조옮김 복소 켤레 전치
디아그 대각 행렬 및 행렬의 대각선
뒤집기 지정된 차원을 따라 배열을 뒤집습니다.
뒤집기 행렬을 왼쪽에서 오른쪽으로 뒤집습니다.
뒤집기 행렬을 위아래로 뒤집습니다.
무시 N차원 배열의 순열 차원 반전
순열 N차원 배열의 차원 재정렬
렙맷 복제 및 타일 배열
모양 변경 배열 모양 변경
rot90 행렬을 90도 회전
shiftdim 차원 이동
분류 세트 요소가 정렬된 순서인지 여부를 결정합니다.
정렬 배열 요소를 오름차순 또는 내림차순으로 정렬
정렬 행을 오름차순으로 정렬
쥐기 싱글톤 차원 제거
조옮김 조옮김
벡터화 표현을 벡터화

예시

다음 예는 위에서 언급한 일부 기능을 보여줍니다.

길이, 치수 및 요소 수 -

스크립트 파일을 만들고 다음 코드를 입력하십시오 -

라이브 데모
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

배열 요소의 원형 이동 -

스크립트 파일을 만들고 다음 코드를 입력하십시오 -

라이브 데모
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

셀 배열

셀 배열은 각 셀이 다른 차원과 데이터 유형의 배열을 저장할 수 있는 인덱스된 셀의 배열입니다.

함수는 셀형 배열을 만드는 데 사용됩니다. 셀 함수의 구문은 -

입니다.
C = cell(dim)
C = cell(dim1,...,dimN)
D = cell(obj)

어디,

예시

스크립트 파일을 만들고 다음 코드를 입력하십시오 -

라이브 데모
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

MATLAB

  1. C# 배열
  2. C# 들쭉날쭉한 배열
  3. 자바 복사 배열
  4. C++의 배열 | 선언 | 초기화 | 배열 예제에 대한 포인터
  5. 예제를 사용한 C++ 배열 동적 할당
  6. MATLAB - 개요
  7. MATLAB - 변수
  8. MATLAB - 명령
  9. MATLAB - 행렬
  10. MATLAB - 숫자