Matlab(매틀랩) 실습 2주차 - 배열 다루기.

2023. 3. 25. 17:57MATLAB & Simulink - MathWorks

202316035 박준혁

 

배열 (array)

 

배열(array)은 문자, 기호, 자료 등 같은 성격을 가진 수치 정보가 순서에 따라 무리 지어 표시되는 것을 말한다.

그중 하나의 행으로 구성된 배열행벡터. 하나의 열로 구성된 배열열벡터, 2차원 배열행렬(matrix)이라고 한다. 공학에서는 배열과 행렬을 자연스럽게 교환해서 사용한다.

 

 

배열 입력하기

배열을 입력할 때는 대괄호([]) 안에 원소를 넣는다. 배열의 행을 바꿀 때는 대괄호 안에 세미콜론(;)을 넣고, 열을 바꿀 때는 한 칸을 띄우거나 콤마(,)를 넣는다. 예를 들어 배열

는 다음과 같이 입력한다.

 


  
>> x = [1 2;3 4];
>> x = [1,2;3,4];

행벡터, 열벡터 입력 예시


  
>> x = [1 2 3 4];


  
>> x = [1;2;3;4];

 

특정 배열 만들기

 

eye 명령어를 사용하면 배열의 주 대각선(main diagonal)에 놓이는 원소는 모두 1이고 그 외 배열의 원소는 모두 0인 단위행렬(identity matrix)을 생성한다. 또한 zeros 명령어는 배열의 크기와 상관없이 모든 원소를 0으로 지정하고, ones 명령어는 모든 원소를 1로 지정한다.

 

특수한 형태의 m x n 배열을 만드는 eye, zeros, ones 명령어의 기본 형태는 다음과 같다.


  
eye(m,n) % 대각선의 원소가 1, 그 외 배열의 원소는 0
zeros(m,n) % 모든 원소 0
ones(m,n) % 모든 원소 1

행의 수와 열의 수가 같은 n x n 배열을 만들 때는 명령어의 인자값 (n,n) 대신에 (n)만 입력하면 된다.

 


 

배열 원소 다루기

배열의 동일한 행에 포함되는 원소들을 분리하려면 콤마(,)를 사용한다. 배열의 색인을 생성할 때와 각각의 차원에 해당하는 행과 열에 대한 색인을 분리할 때도 콤마를 사용한다. 콤마의 왼쪽에는 지정하는 행의 번호를, 오른쪽에는 지정하는 열의 번호를 입력한다. 예를 들어 배열 A의 1행 2일 원소를 분리하려면 A(1,2) 를 입력한다.

 

콜론(:) 주어진 배열에 대한 원소, , 부분 배열을 다양한 방법으로 표시하는데 사용한다. 콜론은 전체 혹은 열에 대해 와일드카드 역할을 한다. 예를 들어 v(:) 벡터 v 모든 행과 열의 원소를 나타내고. V(2:5) 벡터 v 번째부터 다섯 번째 원소 v(2), v(3), V(4), V(5) 나타낸다.

 

 

콤마을 이용해서 배열 A의 2행 3열 원소를 찾아라


  
>> A = [1 2 3; 4 5 6; 7 8 9] % 배열 A


  
>> A(2,3) % 배열 A의 23

 

콜론을 이용하여 배열 A의 2열 모든 원소와 3행 모든 원소를 찾아라


  
>> A(:,2) % 배열 A의 모든 행, 2


  
>> A(3,:) % 배열 A의 3행, 모든 열

 

콜론을 이용하여 배열 A의 3행과 4행 사이의 모든 원소, 2열과 4열 사이의 모든 공통 원소를 찾아라


  
>> A = [0 1 2 3 4; 5 6 7 8 9; -1 -2 -3 -4 -5; -6 -7 -8 -9 0] % 배열 A


  
>> A(3:4,2:4) % 배열 A의 3행과 4행 사이, 2열과 4열 사이


 

전치 연산자(')

전치 연산자는 입력한 배열의 행과 열을 서로 바꿔주는 역할을 하며, 배열에 아포스트로피(apostrophe)를 붙인다.


  
>> A = [1 2 3; 4 5 6; 7 8 9] % 배열 A


  
>> B = A' % 배열 A의 행과 열을 바꾸어 B에 지정


 

규칙적인 배열 표시하기

 

콜론 연산자

콜론 연산자는 규칙적으로 증가하거나 감소하는 배열의 원소를 지정하는 데 사용한다. 예를 들어 1에서 1000까지 1씩 규칙적으로 증가하는 자료를 입력해야 하는 경우 수많은 자료를 하나씩 입력하는 대신 콜론 연산자를 이용하면 훨씬 쉽게 배열을 지정할 수 있다.

 

벡터 x를 생성하기 위한 콜론 연산자의 기본 형태는 다음과 같다.


  
x = i:j:k
i: 초깃값
j: 규칙적으로 증가하거나 감소하는 값
k: 최종값

규칙적으로 감소하는 원소를 지정할 때는 반드시 초깃값이 최종값보다 큰 수여야 하고, 규칙적으로 감소하는 값이 음수여야 한다.


  
>> x = 1:2:10 % 벡터 x가 1부터 10까지 2씩 증가


 

linspace

초깃값, 최종값, 원소 개수를 입력받아 벡터에 규칙적인 원소를 지정하는 linspace 함수의 기본 형태는 다음과 같다.


  
linspace(x1,x2,n)
x1: 초깃값
x2: 최종값
n: 초깃값과 최종값 사이의 원소 개수

 


  
>> x = linspace(1,10,5) % 벡터 x에 1부터 10사이의 규칙적인 원소 5개 지정

 


 

배열 원소 다루기

 

배열 연산자

행과 열의 수가 같은 배열은 배열 연산자를 이용하여 항목별 연산을 있다. 배열 연산자는 곱셈, 나눗셈, 지수승 바로 앞에 마침표(.) 붙여서 사용한다. 배열 연산자를 이용하면 평가하려는 자료를 쉽게 생성하고, 읽고, 문서로 작성할 있다.

연산자 의미
.* 항목별 곱셈
./ 항목별 오른쪽 나눗셈
.\ 항목별 왼쪽 나눗셈
.^ 항목별 지수승

  
>> A = [2 4 6]; B = [1 2 3]; % 벡터 A, B

 


  
>> A.*B % 벡터 A, B의 항목별 곱셈

 


  
>> A./B % 벡터 A, B의 항목별 오른쪽 나눗셈

 


  
>> A.\B % 벡터 A, B의 항목별 왼쪽 나눗셈

 


  
>> A.^B % 벡터 A, B의 항목별 지수승


 

배열 원소의 추가, 삭제, 대체

배열 원소의 추가, 삭제, 대체는 배열의 특정 행 또는 열에 원소를 지정하는 것으로 배열 원소 다루기와 동 일한 방법을 사용한다.

배열 원소의 추가는 콤마와 콜론을 이용하여 추가하려는 또는 열의 색인을 주어진 배열에 지정하고, 추가하려는 새로운 배열을 등호의 오른쪽에 지정하여 실행한다. 배열 원소의 삭제는 삭제할 또는 열의 색인을 주어진 배열에 지정하고, 콤마의 오른쪽에 [ ] 지정하여 실행한다. 배열 원소의 대체는 배열 소의 추가와 같은 방법으로 실행하며, 주어진 배열의 크기 변화 없이 생성된 원소의 내용만을 수정한다.

 


  
>> A = [1 2; 3 4]; % 배열 A

 


  
>> A(3,:) = [5 6] % 배열 A의 3행 원소 추가

 


  
>> A(3,:) = [] % 배열 A의 3행 원소 삭제

 


  
>> A(2,:) = [5 6] % 배열 A의 2행 원소 대체


 

배열의 연쇄, 덧붙이기

배열의 연쇄(concatenate) 덧붙이기(append) 배열을 하나로 묶는 것이다. 배열의 연쇄는 크기가 같은 배열을 하나로 묶는 사용하므로 반드시 배열의 행과 열의 수가 같아야 한다. 반면에 배열의 덧붙이기는 배열의 크기와 상관없이 배열을 하나로 묶는 사용한다.

 


  
>> A = [0 1; 2 3]; B = [4 5; 6 7]; c = [8; 9]; % 배열 A, B와 열벡터 c

 


  
>> D = [A,B], E = [A;B] % 배열 A, B의 원소 연쇄

 


  
>> F = [A,c] % 배열 A에 벡터 c 덧붙이기


 

배열 특성 구하기

 

find

주어진 배열 중에 0이 아닌 값을 가진 원소의 자리 번호를 표시하는 find 함수의 기본 형태는 다음과 같다.


  
find(A)
A: 0이 아닌 원소의 자리 번호를 구할 행렬

자리 번호는 1부터 시작한다.

 


  
>> x = [0 -1 3 0 0 -6 9] % 배열 x

 


  
>> p = find(x) % 배열 x에서 0이 아닌 값의 자리 번호 출력


 

size

1개와 1개로 구성된 m x n 배열에 size 함수를 사용하면 m, n 값을 출력한다. 따라서 size 함수는 시뮬레이션 혹은 무작위로 생성된 새로운 배열에 대한 자료의 개수를 확인하는 유용하게 사용할 있다. size 함수의 기본 형태는 다음과 같다.


  
size(A)
A: 행과 열의 개수를 구할 행렬

 

length

m개와 1개로 구성된 m x n 배열에 length 함수를 사용하면 m n 개수 중에 하나의 값만 출력한다. length 함수의 기본 형태는 다음과 같다.


  
length(A)
A: 행과 열의 개수 중 더 큰 하나의 값을 구할 행렬

 


  
>> A = [2 1; 3 5; 4 8; -1 -2] % 배열 A

 


  
size(A) % 배열 A의 행과 열의 개수 출력

 


  
>> length(A) % 배열 A의 행 개수와 열 개수 중 더 큰수 출력