Skip to content
Home » 매트랩 행렬 추출 | 02 Matlab 행렬생성 71 개의 자세한 답변

매트랩 행렬 추출 | 02 Matlab 행렬생성 71 개의 자세한 답변

당신은 주제를 찾고 있습니까 “매트랩 행렬 추출 – 02 matlab 행렬생성“? 다음 카테고리의 웹사이트 kk.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: https://kk.taphoamini.com/wiki. 바로 아래에서 답을 찾을 수 있습니다. 작성자 박범진 이(가) 작성한 기사에는 조회수 326회 및 좋아요 없음 개의 좋아요가 있습니다.

A 행렬의 1행 2,3열 값과 3행 2, 3열의 값을 동시에 추출하고 싶습니다! 이땐 ( ) 안에서 []괄호를 이용해 행과 열을 묶어줍니다. z = A([1,3], [2,3]) -> ( [ 1행, 3행] , [2열, 3열 ] ) 이와 같은 의미입니다.

매트랩 행렬 추출 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 02 matlab 행렬생성 – 매트랩 행렬 추출 주제에 대한 세부정보를 참조하세요

매트랩 행렬 추출 주제에 대한 자세한 내용은 여기를 참조하세요.

배열 인덱싱 – MATLAB & Simulink – MathWorks 한국

요소 위치를 사용하여 인덱싱하기. 가장 일반적인 방법은 요소의 인덱스를 명시적으로 지정하는 것입니다. 예를 들어, 행렬의 단일 요소에 액세스하려면 요소의 행 …

+ 자세한 내용은 여기를 클릭하십시오

Source: kr.mathworks.com

Date Published: 5/2/2022

View: 4871

5. (Matlab) 알아두면 유용한 매트랩, 행렬 인덱스(indexing)

A(3,2) = 10; // 행렬 A 3행, 2열 값 10으로 변경. 행렬 인덱싱. 행 벡터로 추출. -> 행 인덱스 고정, 열 인덱스 변경으로 특정 행의 값들로 벡터를 …

+ 여기에 보기

Source: technical-support.tistory.com

Date Published: 11/3/2022

View: 1938

매트랩 행렬 기초, 일부 가져오기 (Matlab matrix) – 네이버 블로그

매트랩 행렬 기초, 일부 가져오기 (Matlab matrix) … 4행 3열로 행렬 만듬. ​. ​. 1. 일직선으로 바꾸기​.

+ 여기에 더 보기

Source: m.blog.naver.com

Date Published: 9/23/2021

View: 228

매트랩 행렬 추출 | 매트랩 (Matlab) 1-07 – 행렬 Matrix (Part 1 …

매트랩 행렬 추출 주제에 대한 자세한 내용은 여기를 참조하세요. 배열 인덱싱 – MATLAB & Simulink – MathWorks 한국. 요소 위치를 사용하여 인덱싱하기 …

+ 자세한 내용은 여기를 클릭하십시오

Source: you.dianhac.com.vn

Date Published: 2/9/2022

View: 8778

매트랩 행렬 관련 유용한 팁

1. 전치 행렬. 행렬 뒤에 ‘ 만 붙이면 된다. A’로 전치된 A · 2. 영행렬 및 1만 있는 행렬 생성 · 3. 행렬 갯수 세기 · 4. 행렬의 원소 추출 및 분할 · 5.

+ 여기에 표시

Source: ev-engineer-student.tistory.com

Date Published: 2/1/2022

View: 9912

4. 매트랩에서 행렬 다루기

4. 매트랩에서 행렬 다루기. 2. 학습차례. 행렬 다루기; 두 변수 사이의 연산; 특수 행렬. 3. 학습목표. 행렬을 다룬다. 행렬로부터 데이터를 추출한다.

+ 여기에 자세히 보기

Source: www.kunsan.ac.kr

Date Published: 4/3/2021

View: 7185

Matlab/행렬 – 위키배움터

Matlab에 행렬을 입력하는 방법은 간단합니다. [] 괄호를 이용하면 행렬을 표시한다는 뜻이고, 콤마(,)는 같은 행의 원소를 나열할 때, 세미콜론(;)은 …

+ 여기에 표시

Source: ko.wikiversity.org

Date Published: 7/1/2021

View: 2407

MATLAB 의 행렬의 인덱싱 방법 (part 1) – 스터디메이크

MATLAB에서 벡터의 원소를 참조하거나 벡터의 원하는 위치에 값을 설정 … 즉, 행렬 A의 k1행 k2열 원소를 참조하고자 할 때 A(k1,k2)로 입력한다.

+ 여기에 표시

Source: studymake.tistory.com

Date Published: 3/28/2021

View: 3635

주제와 관련된 이미지 매트랩 행렬 추출

주제와 관련된 더 많은 사진을 참조하십시오 02 matlab 행렬생성. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

02 matlab 행렬생성
02 matlab 행렬생성

주제에 대한 기사 평가 매트랩 행렬 추출

  • Author: 박범진
  • Views: 조회수 326회
  • Likes: 좋아요 없음
  • Date Published: 2018. 7. 17.
  • Video Url link: https://www.youtube.com/watch?v=SCpAJuZZddw

5-1. (Matlab) 알아두면 유용한 매트랩, 행렬 인덱스(indexing) 응용

안녕하세요!!

오늘은 지난 행렬 인덱스(indexing) 게시물에 이어 행렬 인덱싱의 간단한 응용을 공유해볼까합니다!

1.행렬 인덱싱 응용

먼저 Matlab에서 3×3 행렬 하나를 생성합시다.

A = [1,2,3; 4,5,6 ; 7,8,9]

(1 2 3)

(4 5 6)

(7 8 9) 3×3 행렬 생성

인덱스에 접근하기전!!

지난 시간 행렬의 인덱스 접근 할 때 한가지만 기억하면 된다고 말씀드렸습니다!

A(접근 행, 접근 열)

– 열 전체 Indexing

해당 행렬에서 원하는 열의 전부를 추출하고 싶다면

아래 그림과 같이 행은 1~n 까지 즉, 모든 행을 접근해야합니다.

열 추출

y = A( : , 2) -> 괄호 안에 ‘:’ 는 모든 행 접근을 의미합니다. 뒤에 숫자 2는 접근 열번호를 의미합니다.

매트랩 열 전체 추출

– 행 전체 Indexing

반대로 행전체 추출은 모든 열에 접근해야합니다.

행 추출

위그림과 같이 n 번째 행을 추출하려면, n번째 행과 1~n까지 열에 접근해야합니다.

y = A(3, 🙂 -> 괄호 안에 ‘:’ 는 모든 열 접근을 의미합니다. 앞에 숫자 3는 접근 행 번호를 의미합니다.

매트랩 행 전체 추출

– 열 & 행 Indexing 응용

Matrix( , )

특정행렬의 행과 열은 ‘,’ 로 구분된다고 했습니다.

그럼,

A 행렬의 1행 2,3열 값과 3행 2, 3열의 값을 동시에 추출 하고 싶습니다!

이땐 ( ) 안에서 []괄호를 이용해 행과 열을 묶어줍니다.

z = A([1,3], [2,3]) -> ( [ 1행, 3행] , [2열, 3열 ] ) 이와 같은 의미입니다.

행 열 동시 접근

B = A(end:-1:1, 🙂 -> end는 해당 행렬의 맨 끝 행 또는 열을 의미합니다.

이는 끝행 부터 시작 해서 -1씩 다음행에 접근해 각 행을 추출해서 쌓는 표현이라고 보시면됩니다.

보시면 B의 1행이 A의 3행의 값을 나타내고 있습니다.

‘end’로 마지막 행부터 쌓아 행의 위치를 바꿔봤습니다!

– 행렬 결합

마지막으로 두 행렬의 조합으로 새로운 행렬을 만들어보겠습니다!

A = [1,2 ; 3,4]; // 2X2 행렬 생성

b = [5, 6]; // 1×2 행렬 생성

위 두행렬로 새로운 행렬 B를 만들어봅시다.

B = [A, b’] // b행렬 Tranpose 하여 열방향으로 A행렬에 추가

B1 = [A;b] // b행렬 행방향으로 A행렬에 추가

행렬 결합

B = [A, b’] 는 , 를 이용해 열을 추가 했으므로

B = [1, 2 , 5 ; 3, 4, 6] 또는 B = [A , [5;6]] 과 같은 표현입니다

B1 = [A;b] 는 ; 를 이용해 행을 추가 했으므로

B1 = [1, 2 ; 3, 4 ; 5, 6] 과 같은 표현입니다.

매트랩 행렬에서 두괄호를 기억하시면 도움이 되실겁니다!!

[ ]: 행렬 생성!

( ): 행, 열 인덱스 접근!

오늘은 여기서 마무리하겠습니다!

읽어주셔서 감사합니다~

MATLAB & Simulink

MATLAB®에는 배열에서의 요소 위치(인덱스)를 기준으로 배열 요소에 액세스할 수 있는 세 가지 기본 방법이 있습니다. 위치 기준 인덱싱, 선형 인덱싱, 논리형 인덱싱이 그것입니다.

요소 위치를 사용하여 인덱싱하기

가장 일반적인 방법은 요소의 인덱스를 명시적으로 지정하는 것입니다. 예를 들어, 행렬의 단일 요소에 액세스하려면 요소의 행 번호 다음에 열 번호를 지정하십시오.

A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]

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

e = A(3,2)

e = 10

e 는 A 의 3,2 위치(세 번째 행, 두 번째 열)에 있는 요소입니다.

요소 인덱스를 벡터로 지정하여 한 번에 여러 개의 요소를 참조할 수도 있습니다. 예를 들어, A 의 두 번째 행에 있는 첫 번째 요소와 세 번째 요소에 액세스해 보겠습니다.

r = A(2,[1 3])

r = 1×2 5 7

특정 범위의 행 또는 열에 있는 요소에 액세스하려면 colon 을 사용하십시오. 예를 들어, A 의 행 1~3과 열 2~4 범위에 있는 요소에 액세스해 보겠습니다.

r = A(1:3,2:4)

r = 3×3 2 3 4 6 7 8 10 11 12

r 을 계산하는 또 다른 방법은 키워드 end 를 사용하여 두 번째 열부터 마지막 열까지 지정하는 것입니다. 이 방법을 사용하면 A 에 몇 개의 열이 있는지 정확하게 알지 못해도 마지막 열을 지정할 수 있습니다.

r = A(1:3,2:end)

r = 3×3 2 3 4 6 7 8 10 11 12

행 또는 열 전체에 액세스하려면 콜론 연산자만 사용하십시오. 예를 들어, A 의 세 번째 열 전체를 반환해 보겠습니다.

r = A(:,3)

r = 4×1 3 7 11 15

일반적으로 MATLAB에서는 인덱싱을 사용하여 데이터형 또는 차원에 상관없이 모든 배열의 요소에 액세스할 수 있습니다. 예를 들어, datetime 배열의 열에 직접 액세스해 보겠습니다.

t = [datetime(2018,1:5,1); datetime(2019,1:5,1)]

t = 2×5 datetime 01-Jan-2018 01-Feb-2018 01-Mar-2018 01-Apr-2018 01-May-2018 01-Jan-2019 01-Feb-2019 01-Mar-2019 01-Apr-2019 01-May-2019

march1 = t(:,3)

march1 = 2×1 datetime 01-Mar-2018 01-Mar-2019

더 높은 차원의 배열의 경우, 배열 차원과 일치하도록 구문을 확장합니다. 3×3×3 랜덤 숫자형 배열이 있다고 가정하겠습니다. 배열의 두 번째 행, 세 번째 열, 첫 번째 시트에 있는 요소에 액세스합니다.

A = rand(3,3,3); e = A(2,3,1)

e = 0.5469

다차원 배열을 사용하는 방법에 대한 자세한 내용은 다차원 배열 항목을 참조하십시오.

단일 인덱스를 사용하여 인덱싱하기

배열의 요소에 액세스하는 또 다른 방법은 배열의 크기 또는 차원에 상관없이 단일 인덱스만 사용하는 것입니다. 이 방법을 선형 인덱싱이라고 합니다. MATLAB은 배열을 정의된 크기 및 형태에 따라 표시하지만, 실제로는 메모리에 하나의 열로 구성된 요소로 저장합니다. 이 개념을 시각화하는 좋은 방법은 행렬을 사용하는 것입니다. 다음 배열은 3×3 행렬로 표시되지만, MATLAB은 행렬 A 의 열을 차례대로 연결하여 하나의 열로 저장합니다. 저장된 벡터에는 일련의 요소 12 , 45 , 33 , 36 , 29 , 25 , 91 , 48 , 11 이 들어 있으며, 하나의 콜론을 사용하여 이를 확인할 수 있습니다.

A = [12 36 91; 45 29 48; 33 25 11]

A = 3×3 12 36 91 45 29 48 33 25 11

Alinear = A(:)

Alinear = 9×1 12 45 33 36 29 25 91 48 11

예를 들어, A 의 3,2 요소는 25 이며, 구문 A(3,2) 를 사용하여 액세스할 수 있습니다. 또한 25 는 저장된 벡터 수열의 여섯 번째 요소이므로 구문 A(6) 을 사용하여 이 요소에 액세스할 수도 있습니다.

e = A(3,2)

e = 25

elinear = A(6)

elinear = 25

선형 인덱싱은 시각적으로 직관성이 떨어지지만, 배열의 크기 또는 형태에 영향을 받지 않는 특정 연산을 수행하는 데 효과적일 수 있습니다. 예를 들어, sum 함수에 두 번째 인수를 제공하지 않고도 A 에 있는 모든 요소의 합을 쉽게 구할 수 있습니다.

s = sum(A(:))

s = 330

sub2ind 함수와 ind2sub 함수는 원래 배열 인덱스와 선형 인덱스 간 변환에 유용합니다. 예를 들어, A 의 3,2 요소에 해당하는 선형 인덱스를 계산해 보겠습니다.

linearidx = sub2ind(size(A),3,2)

linearidx = 6

선형 인덱스를 다시 행과 열 형식으로 변환합니다.

[row,col] = ind2sub(size(A),6)

row = 3

col = 2

논리값을 사용하여 인덱싱하기

논리값 표시자 true와 false를 사용하면 특히 조건문을 사용할 때 배열의 요소를 참조하는 데 유용합니다. 예를 들어, 행렬 A 의 요소가 또 다른 행렬 B 의 대응하는 요소보다 작은지 여부를 알고자 한다고 가정하겠습니다. ‘보다 작음’ 연산자는 A 의 요소가 대응하는 B 의 요소보다 작을 경우 1 을 요소로 갖는 논리형 배열을 반환합니다.

A = [1 2 6; 4 3 6]

A = 2×3 1 2 6 4 3 6

B = [0 3 7; 3 7 5]

B = 2×3 0 3 7 3 7 5

ind = A

5. (Matlab) 알아두면 유용한 매트랩, 행렬 인덱스(indexing)

안녕하세요!

4번째 게시물에 이어서! 행렬의 Indexing(인덱싱)에 대해 이야기해보겠습니다.

2. Row-Column Indexing : 행 인덱스, 열인덱스

– matrix indexing

먼저 행렬을 하나 생성해봅시다.

A = magic(3); //3×3 마방진행렬, 행렬 생성함수는 여기서 봅시다! -> CLICK!(행렬생성 함수 게시물)

2-1. 행 인덱스, 열 인덱스 입력하여 특정 원소접근 하기!

행렬 A에 접근하기 위해선 ( )를 이용하면 되는데요.

A(접근 행, 접근 열)

A( , ) 콤마로 행과 열 구분! 이것만 기억하시면

행렬의 행과, 열 원소에 인덱싱이 가능합니다.

즉 행렬 A에 7이라는 원소에 접근하기 위해서는 7의 위치인 2행, 3열을 확인하면 되겠죠?!

x = A(2,3); // A의 2행, 3열 접근

몇가지 예를 더 봅시다!

x = A(3,1); // 행렬 A의 3행, 1열 Indexing

A(3,2) = 10; // 행렬 A 3행, 2열 값 10으로 변경

행렬 인덱싱

행 벡터로 추출

-> 행 인덱스 고정, 열 인덱스 변경으로 특정 행의 값들로 벡터를 구성하게됩니다.

y = A(1, [2,3]); // 행렬 A 1행 2열,3열의 값들을 인덱싱, 즉, y = [A의 1행 2열, A의 1행 3열]

y = A(1, 2:3); // A(1, [2,3])과 같은 표현!

y = A(1, [1, 1, 3]); // y = [1행 1열, 1행 1열, 1행 3열]

y = A(2, 1:end); // A의 2행 1열~끝열 까지 추출! 즉, 2행 전부 추출

행벡터로 추출

열 벡터로 추출

-> 열 인덱스 고정, 행 인덱스 변경으로 특정 열의 값들로 벡터를 구성하게됩니다.

y = A(1:2, 3); // A의 1~2행에 속하는 3열의 값들

열벡터로 추출

이렇게 행렬의 Row – Column 접근하여 Indexing을 진행하는 방법에 대해 알아봤습니다!!

직접 실행하시면 더욱 이해하시는데 도움이 되실거에요!!

읽어주셔서감사합니다!!

매트랩 행렬 추출 | 매트랩 (Matlab) 1-07 – 행렬 Matrix (Part 1) 답을 믿으세요

We are using cookies to give you the best experience on our website.

You can find out more about which cookies we are using or switch them off in settings.

전기자동차를 연구하는 대학원생의 블로그

매트랩 행렬 관련 유용한 팁

매트랩은 행렬 계산기라 할 수 있을 정도로 행렬에 관한 연산이나 데이터 처리를 할 때 매우 유용하다. 기본적인 행렬 및 매트랩 지식은 안다는 가정 하에 평소에 쉽게 까먹지만 유용한 팁을 여기에 적어놓겠다. 필요한 게 있으면 ctrl+f 로 검색해서 그때 그때 확인히면 편하다.

1. 전치 행렬

행렬 뒤에 ‘ 만 붙이면 된다.

A’로 전치된 A

2. 영행렬 및 1만 있는 행렬 생성

zeros(x,y)를 하면 모든 원소가 0인 x-by-y 행렬이 만들어진다. 마찬가지로 ones(x,y)는 모든 원소가 1인 x-by-y 행렬이 된다.

zeros와 ones 함수 결과

3. 행렬 갯수 세기

length() 함수를 통해 행렬의 열이나 행의 갯수를 셀 수 있다. 보통 행과 열 중 큰 수를 출력한다. 전체 x-by-y 값을 알고 싶으면 size()를 사용하면 된다. 보통 메크로 프로그램을 짤 때나 데이터에 대해 정확히 모를 경우에 쉽게 행렬 갯수를 변수로 받아올 수 있다.

length와 size 함수 결과

4. 행렬의 원소 추출 및 분할

여러가지 원소로 구성된 행렬에서 특정 위치의 원소 값만 받아오고 싶을 때는 “행렬(x,y)”와 같은 형태를 통해 x,y 위치의 원소를 뽑아낼 수 있다. 함수 입력에 콜론(:) 앞 뒤에 첫 위치와 끝 위치를 적어 이용하면 부분 행렬도 가능하다. 만약 하나의 행이나 열을 모두 가져오려면 ‘:’만 쓰면 편하다.

행렬 추출 결과

5. 행렬 합성

반대로 두 행렬을 합치고 싶으면 “[행렬1 행렬2]”와 같이 대괄호로 묶어주면 된다. 행을 바꾸고 싶으면 “[행렬1; 행렬2]”도 가능하다.

행렬 합성 결과

6. 행렬 원소마다 곱셈 나눗셈

보통 “행렬1*행렬2″을 하면 행렬 곱셈을 실행한다. 하지만 두 행렬의 일치하는 자리의 원소끼리의 곱을 하고 싶다면 연산자 앞에 . 을 붙이면 된다. 즉 “행렬1.*행렬2” 형태로 표현한다. 이는 추출한 데이터를 처리할 때 유용하게 사용할 수 있다. 나눗셈도 마찬가지이다.

행렬 곱셈 나눗셈 결과

7. 역행렬 구하기

inv()함수로 1초만에 구할 수 있다.

역행렬 연산 결과

8. 행렬 뒤집기

행렬을 거꾸로 재배열하기 위해선 flip() 이라는 함수를 이용하면 된다.

flip 함수 결과

추후에 또 생각나는 게 있으면 추가하겠다.

반응형

Matlab/행렬

2강에서는 Matlab에서 사용하는 행렬에 대한 기본적인 사항을 다룹니다.

Matlab에 행렬을 입력하는 방법은 간단합니다. [] 괄호를 이용하면 행렬을 표시한다는 뜻이고, 콤마(,)는 같은 행의 원소를 나열할 때, 세미콜론(;)은 다음 행으로 넘어갈 때 사용합니다.

>> A=[1, 2, 3, 4; 5, 6, 7, 8] A = 1 2 3 4 5 6 7 8 >> B=[9; 10; 11; 12] B = 9 10 11 12

행렬 안에 꼭 숫자만 들어갈 필요는 없습니다. 변수나 함수가 들어가도 됩니다.

>> a=pi a = 3.1416 >> D=[linspace(1,3,3); 2, 4, 5; 5:1:7; exp(1), pi, a] % linspace는 곧 배웁니다. D =

1.0000 2.0000 3.0000 2.0000 4.0000 5.0000 5.0000 6.0000 7.0000 2.7183 3.1416 3.1416

벡터 데이터 생성 [ 편집 ]

Matlab에서는… 스칼라: 1×1 사이즈 행렬, 즉 단일값으로 되어있는 데이터를 ‘스칼라’라고 하고 벡터: 1×n 사이즈 행렬(n≥2), 즉 가로 한 줄로 되어있는 데이터를 ‘행 벡터’라고 하고 벡터: m×1 사이즈 행렬(m≥2), 즉 세로 한 줄로 되어있는 데이터를 ‘열 벡터’라고 하고 행렬: m×n 사이즈 행렬(m≥2, n≥2)을 좁은 의미에서 ‘행렬(Matrix)’이라고 구분하여 부릅니다. 물론 넓은 의미에서 매트랩의 모든 데이터는 행렬로 볼 수 있습니다.

a:step:b 콜론 연산자(:) [ 편집 ]

“a부터 step 간격으로 b까지”

1 시작 범위(a)와 간격(step), 마지막 범위(b)를 입력해서 행렬을 생성할 수도 있습니다.

>> C= 0:2:10 C = 0 2 4 6 8 10

2 가운데 입력하는 간격을 생략할 수도 있습니다. 이때 자동으로 1 간격으로 생성됩니다.

>> C1= 0:10 C1 = 0 1 2 3 4 5 6 7 8 9 10

3 대괄호과 섞어서도 사용할 수 있습니다.

>> V = [ 1, 3, 1:2:9 ] V = 1 3 1 3 5 7 9

>> N = [ 1:2:9 ; 2:2:10 ] N = 1 3 5 7 9 2 4 6 8 10

linspace() 함수 [ 편집 ]

1 linspace(a,b,n)을 이용해 a부터 b까지 범위를 n개 값으로 자동으로 균일한 간격으로 나누어 표시할 수도 있습니다.

>> linspace(0,10,5) ans = 0.00000 2.50000 5.00000 7.50000 10.00000

2 linespace(a, b)만 입력하면 100개 값으로 나누어 표시해 줍니다.

>> linspace(1,10) ans = Columns 1 through 12: 1.0000 1.0909 1.1818 1.2727 1.3636 1.4545 1.5455 1.6364 1.7273 1.8182 1.9091 2.0000 … (중략) Columns 97 through 100: 9.7273 9.8182 9.9091 10.0000

영행렬, 단위행렬, 1행렬 [ 편집 ]

영행렬 [ 편집 ]

1 영행렬인 정방행렬(정사각행렬)은 zeros(n)에 변수를 한 개만 입력하면 됩니다.

>> zeros ( 3 ) ans = 0 0 0 0 0 0 0 0 0

2 i행, j열의 영행렬은 zeros(m, n)를 이용해 생성합니다.

>> zeros(3,4) ans =

0 0 0 0 0 0 0 0 0 0 0 0

3 모든 원소가 a인 m×n 사이즈 행렬은 zeros(m, n)에 덧셈을 이용해 생성합니다.

>> zeros(3, 4) + 3 ans =

3 3 3 3 3 3 3 3 3 3 3 3

단위 행렬 [ 편집 ]

1 정방의 단위 행렬은 eye(n)을 이용해 생성합니다.

>> eye(5) ans =

Diagonal Matrix

1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1

2 m×n 크기의 단위행렬은 eye(m, n)을 이용해 생성합니다.

행렬의 축에 있는 원소가 1이고 다른 원소는 0인 행렬이 생성됩니다.

>> eye ( 3 , 4 ) ans = Diagonal Matrix 1 0 0 0 0 1 0 0 0 0 1 0

행렬의 축 어느 원소의 행 번호, 열 번호를 각각 i, j라고 하면, i=j일 때 행렬의 축에 놓인다고 말합니다. 즉, 1행 1열부터 2행 2열, 3행 3열 등과 같이 i행 i열 원소가 행렬의 축입니다.

1행렬 [ 편집 ]

1 1로만 이루어진 정방행렬은 ones(x)로 생성합니다.

>> ones ( 3 ) ans = 1 1 1 1 1 1 1 1 1

2 1로만 이루어진 i행, j열의 행렬은 ones(i, j)로 생성합니다.

>> ones(3,4) ans =

1 1 1 1 1 1 1 1 1 1 1 1

3 모든 원소가 a인 정방행렬을 만들 때, ones(m, n) * a 형태를 사용하기도 합니다.

단, 성능은 zeros(m, n) + a 형태가 일반적으로 더 유리하다고 판단합니다. 컴퓨터는 곱셈보다는 덧셈을 훨씬 빨리 수행할 수 있기 때문입니다.

>> ones(3,4) * 3 ans =

3 3 3 3 3 3 3 3 3 3 3 3

전치 [ 편집 ]

1 전치(transpose)를 사용하면 i행 j열의 행렬을 j행 i열의 행렬로 뒤집을 수 있습니다. 전치하고자 하는 행렬에 작은 따옴표(‘)를 붙여주면 됩니다.

>> a=pi a = 3.1416 >> D=[linspace(1,3,3); 2, 4, 5; 5:1:7; exp(1), pi, a] D =

1.0000 2.0000 3.0000 2.0000 4.0000 5.0000 5.0000 6.0000 7.0000 2.7183 3.1416 3.1416 >> D’ ans =

1.0000 2.0000 5.0000 2.7183 2.0000 4.0000 6.0000 3.1416 3.0000 5.0000 7.0000 3.1416

2 함수를 사용해서 만드는 행렬도 간단히 전치할 수 있습니다.

>> linspace(1,3,3)’ ans =

1 2 3

3 연산 결과를 전치할 때는 괄호를 사용할 수 있습니다.

>> ( [1, 2 ; 3, 4] * [10 ; 1] )’ ans = 12 34

행렬의 원소 선택 [ 편집 ]

원소 번호를 ‘첨자 인덱스(-index)’라고 하고, 원소를 하나 선택하는 것을 인덱싱이라고 합니다.

1 위에서 정의한 행렬 D의 i행 j열 원소는 D(i,j)로 인덱싱 하여 불러낼 수 있습니다.

>> D(4,1) ans = 2.7183

또한 해당 원소의 자리에 새 값을 덮어쓰기 할 수도 있습니다.

>> D(4,1)=999; >> D D =

1.0000 2.0000 3.0000 2.0000 4.0000 5.0000 5.0000 6.0000 7.0000 999.0000 3.1416 3.1416

2 linspace로 만든 행렬에 바로 적용할 수도 있습니다. 이때 행 벡터나 열 벡터의 원소를 출력할 때, 괄호 안의 숫자는 한개만 넣습니다.

>> linspace(1,3,3)'(2) ans = 2 >> linspace(1,3,3)'(3) ans = 3

앞서 정의한 C 행렬의 네번째 원소를 불러와 봅니다.

>> C(4) ans = 6

콜론(:)의 사용 [ 편집 ]

1 행 벡터나 열 벡터의 경우 m번째에서 n번째 원소를 선택할 수도 있습니다. 앞서 정의한 B에서 두번째부터 네번째까지의 원소로 행렬을 만들면,

>> B B =

9 10 11 12

>> B(2:4) ans =

10 11 12

2 콜론(:)을 이용해 특정한 열이나 행 전체를 선택할 수도 있습니다.

>> D(:,3) %행 자리에 콜론(:)이 들어갔으므로 모든 행을 선택하는데, 열 자리에는 3열을 선택하였으므로, 3열에 해당하는 모든 행을 출력합니다. ans =

3.0000 5.0000 7.0000 3.1416

>> D(2,:) %열 자리에 콜론(:)이 들어갔으므로 모든 열을 선택하는데, 행 자리에는 2행을 선택하였으므로, 2행에 해당하는 모든 열을 출력합니다. ans =

2 4 5

3 eye(5) 행렬의 2행부터 4행, 1열부터 4열까지의 원소로 행렬을 만들어 봅니다.

>> eye(5) ans =

Diagonal Matrix

1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1

>> ans(2:4, 1:4) ans =

0 1 0 0 0 0 1 0 0 0 0 1

불연속적인 행과 열 선택 [ 편집 ]

연속되지 않은 행과 열을 선택할 수도 있습니다. 이때는 행과 열을 선택할 때 [] 괄호를 사용해주어야 합니다.

>> V = 4 : 3 : 34 V = 4 7 10 13 16 19 22 25 28 31 34 >> u = V ([ 3 , 5 , 8 : 10 ]) % 3번째, 5번째, 8~10번째 원소로 새 행렬 u를 생성 u = 10 16 25 28 31

>> A =[ 1 , 2 , 3 , 9 ; 2 , 4 , 5 , 10 ; 5 , 6 , 7 , 11 ; 999 , pi , pi , 12 ; 1 , 2 , 3 , 9 ; 2 , 4 , 5 , 10 ; 5 , 6 , 7 , 11 ; 999 , pi , pi , 12 ] A = 1.0000 2.0000 3.0000 9.0000 2.0000 4.0000 5.0000 10.0000 5.0000 6.0000 7.0000 11.0000 999.0000 3.1416 3.1416 12.0000 1.0000 2.0000 3.0000 9.0000 2.0000 4.0000 5.0000 10.0000 5.0000 6.0000 7.0000 11.0000 999.0000 3.1416 3.1416 12.0000 >> A ([ 4 , 7 ], [ 1 , 3 : 4 ]) % A행렬에서 4행, 7행을 선택하고, 그 중 1열, 3~4열에 해당하는 원소로 행렬을 생성 ans = 999.0000 3.1416 12.0000 5.0000 7.0000 11.0000

기존 행렬에 원소 추가하기 [ 편집 ]

벡터에 원소 추가하기 [ 편집 ]

행벡터 혹은 열벡터의 경우 원소를 추가해 보겠습니다.

>> A = 1 : 5 A = 1 2 3 4 5 >> A ( 6 : 10 )= linspace ( 0 , 10 , 5 ) % A행렬의 6번째부터 10번째 원소를, 0부터 10까지의 수에서 같은 간격 다섯 개 수로 지정 A = Columns 1 through 6 : 1.00000 2.00000 3.00000 4.00000 5.00000 0.00000 Columns 7 through 10 : 2.50000 5.00000 7.50000 10.00000

>> A ( 15 )= 999 % 10번째 원소까지만 있는 행렬에, 15번째 원소만 추가한다면, 11번째 원소부터 14번째 원소는 자동으로 0으로 채워집니다. A = Columns 1 through 6 : 1.00000 2.00000 3.00000 4.00000 5.00000 0.00000 Columns 7 through 12 : 2.50000 5.00000 7.50000 10.00000 0.00000 0.00000 Columns 13 through 15 : 0.00000 0.00000 999.00000

>> NEW ( 7 )= 777 % 아직 존재하지 않는 행렬의 임의 주소에 원소를 할당해 주면, 나머지 주소에는 자동으로 0이 채워집니다. NEW = 0 0 0 0 0 0 777

행렬에 원소 추가하기 [ 편집 ]

>> A = ones ( 5 ) A = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> A ( 3 , 8 )= 999 % 3행 8열에 새 원소 999를 추가하고 나머지 빈 주소에는 0으로 채우기 A = 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 999 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 >> B = A (:, 1 : 5 ) % A행렬에서 모든 행에 해당하며, 1에서 5열까지의 원소로 새 행렬 B를 만듦 B = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> B ( 8 , 8 )= 888 % B 행렬에서 8행 8열에 새 원소 888을 추가하고 나머지 빈 주소에는 0을 입력 B = 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 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 0 888

이미 원소가 있는 주소에 다른 수를 지정하면, 원소가 교체됩니다.

>> B1 = ones ( 5 ) B1 = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> B1 ( 3 , 4 )= 999 % B1행렬의 3행 4열에 999로 교체 B1 = 1 1 1 1 1 1 1 1 1 1 1 1 1 999 1 1 1 1 1 1 1 1 1 1 1

이어붙이기 [ 편집 ]

벡터끼리 이어붙이기 [ 편집 ]

벡터끼리도 이어붙일 수 있습니다.

>> v1 =[ 3 : 8 ] v1 = 3 4 5 6 7 8 >> v2 =[ 11 : 17 ] v2 = 11 12 13 14 15 16 17 >> v3 =[ v1 v2 ] v3 = 3 4 5 6 7 8 11 12 13 14 15 16 17

2차원 행렬 이어붙이기 [ 편집 ]

2차원 행렬에도 원소 추가를 할 수 있습니다. 이미 있는 행렬에 이미 있는 행렬을 붙여서 새로운 행렬을 만드는 것도 가능합니다.

>> D1 =[ D , B ] % 앞서 만든 D, B행렬을 이어붙여 D1행렬을 만들어 줍니다. D1 = 1.0000 2.0000 3.0000 9.0000 2.0000 4.0000 5.0000 10.0000 5.0000 6.0000 7.0000 11.0000 999.0000 3.1416 3.1416 12.0000 >> D2 =[ D1 ; D1 ] % D1행렬을 세로로 이어붙여 D2행렬을 만듭니다. 가로로 이어붙인다면 세미콜론(;) 대신 쉼표(,)나 띄어쓰기를 넣어주면 됩니다. D2 = 1.0000 2.0000 3.0000 9.0000 2.0000 4.0000 5.0000 10.0000 5.0000 6.0000 7.0000 11.0000 999.0000 3.1416 3.1416 12.0000 1.0000 2.0000 3.0000 9.0000 2.0000 4.0000 5.0000 10.0000 5.0000 6.0000 7.0000 11.0000 999.0000 3.1416 3.1416 12.0000

예제 1) ones, zeros를 이용해 첫 두 행은 0, 다음 두 행은 1인 4X4 행렬을 만들어보자.

>> A = ones ( 2 ), B = zeros ( 2 ) A = 1 1 1 1 B = 0 0 0 0 >> C =[ B B ; A A ] C = 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

예제 2) 모두 0으로 채워진 6X6 행렬에서, 3, 4열 그리고 3, 4행에 1을 추가해서 중앙에 십자 표시를 만들어보자.

>> A = ones ( 2 ), B = zeros ( 2 ) A = 1 1 1 1 B = 0 0 0 0 >> C =[ B A B ; A A A ; B A B ] C = 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0

예제 3) 예제 2에서 만든 C 행렬의 1행, 2행 그리고 3 ~ 6열에 해당하는 부분에, D = [ 5 10 15 20 25 30 20 25 30 35 40 45 0 5 10 15 20 25 ] {\displaystyle D={\begin{bmatrix}5&10&15&20&25&30\\20&25&30&35&40&45\\0&5&10&15&20&25\end{bmatrix}}} 행렬의 2, 3행 그리고 3 ~ 6열에 해당하는 원소를 대입해보자.

>> D =[ 5 : 5 : 30 ; 20 : 5 : 45 ; 0 : 5 : 25 ] D = 5 10 15 20 25 30 20 25 30 35 40 45 0 5 10 15 20 25 >> C ([ 1 , 2 ], [ 3 : 6 ])= D ([ 2 , 3 ], [ 3 : 6 ]) C = 0 0 30 35 40 45 0 0 10 15 20 25 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0

원소 제거하기 [ 편집 ]

제거할 원소를 지정하고 [] 괄호로 덮어쓰기 해주면 원소를 제거할 수 있습니다. 0으로 치환하는 것이 아니라 해당 부분을 제거하고 나머지 부분을 이어붙여서 더 작은 행렬을 만들어줍니다.

>> A =[ 1 : 10 ] A = 1 2 3 4 5 6 7 8 9 10 >> A ( 3 : 6 )=[] A = 1 2 7 8 9 10

>> B =[ 1 : 10 ; 11 : 20 ; 21 : 30 ] B = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >> B ([ 1 , 2 ],[ 3 , 4 ])=[] error : a null assignment can only have one non – colon index % 가운데만 뻥 뚫린 행렬을 만드는 것은 불가능합니다. >> B (:,[ 3 , 4 ])=[] % B행렬의 3, 4열을 제거하고 나머지 부분을 이어붙입니다. B = 1 2 5 6 7 8 9 10 11 12 15 16 17 18 19 20 21 22 25 26 27 28 29 30

행렬의 조작을 위한 함수 [ 편집 ]

함수 설명 예시 length(A) 원소 개수를 알려준다. 스크립트 작성 시, 특히 반복문을 만들 때, length함수를 쓰면 임의 길이의 벡터나 행렬에 대해 반복문을 쉽게 작동시킬 수 있다. >> A = linspace ( 99 , 105 , 6 ) A = 99.000 100.200 101.400 102.600 103.800 105.000 >> length ( A ) ans = 6 >> B =[ 1 2 3 4 ; 5 6 7 8 ] % 2차원 행렬일 때는 행과 열 길이 중 큰 것의 개수를 알려준다. B = 1 2 3 4 5 6 7 8 >> length ( B ) ans = 4 % 행보다 열의 수가 더 크므로 4 출력 >> B ‘ ans = 1 5 2 6 3 7 4 8 >> length ( ans ) ans = 4 % 열보다 행의 수가 더 크므로 4 출력 size(A) 해당 행렬의 행과 열 수를 알려준다 >> B ‘ ans = 1 5 2 6 3 7 4 8 >> size ( B ‘ ) ans = 4 2 >> B B = 1 2 3 4 5 6 7 8 >> size ( B ) ans = 2 4 reshape(A, m, n) 크기가 iXj인 행렬을 mXn 행렬로 만들어준다

이때 ij=mn이어야 한다

생성되는 행렬은 1열의 위에서부터 아래로, 2열의 위에서부터 아래로 (…) 순서로 원소가 입력된다 >> B B = 1 2 3 4 5 6 7 8 >> reshape ( B , 4 , 2 ) ans = 1 3 5 7 2 4 6 8 diag(v) v 벡터의 원소를 대각 성분으로 갖는 대각행렬을 만든다 >> v =[ 9 8 7 6 ]; >> diag ( v ) ans = Diagonal Matrix 9 0 0 0 0 8 0 0 0 0 7 0 0 0 0 6 diag([넣을 원소들], 중심으로부터의 변위)를 사용하면 오른쪽과 같이 중심에서 떨어진 곳에 대각 성분을 넣은 행렬을 만들 수 있다. >> v =[ 9 8 7 ]; >> diag ( v , 1 ) ans = Diagonal Matrix 0 9 0 0 0 0 8 0 0 0 0 7 0 0 0 0 diag(A) A행렬의 대각 성분을 추출하여 열 벡터를 만든다

위의 명령어와 동일하지만 입력값에 행렬이 입력되는 것이 차이점이다 >> A =[ 3 6 9 ; 7 8 9 ; 1 2 3 ] A = 3 6 9 7 8 9 1 2 3 >> diag ( A ) ans = 3 8 3

문자열 [ 편집 ]

Matlab 2016 b 및 이후 버전에서는 문자형 배열(‘abc’)과 문자열(“abc”)이 구분되었습니다. 문자열에 몇 가지 편의 기능이 추가되었습니다. 문자형 배열의 타입은 기존과 같이 ‘char’ 타입이며, 문자열의 타입은 ‘string’으로 구분됩니다. (관례적 쓰임에 따라 문자형 배열, 문자열 모두 넓은 의미에서 문자열로 부를 수 있습니다.)

문자형 배열 [ 편집 ]

문자형 배열은 작은 따옴표(‘) 사이에 입력합니다. 문자형 배열도 일종의 행렬로 저장되며 문자 하나하나를 원소로 갖습니다. 알파벳, 한글, 특수문자, 이모지, 띄어쓰기, 숫자 역시 작은 따옴표 안에 입력할 경우 문자로 취급합니다. 문자형 배열에도 행렬에서 사용하는 연산자와 함수 등을 사용할 수 있습니다. 예를 들어 어느 문자형 배열을 변수에 저장했을 때, 문자형 배열의 일부분을 수정하고 싶다면 슬라이싱과 인덱싱을 통해 편집할 수도 있습니다.

>> text = ‘Hello World!’ % 문자형 배열 입력 text = ‘Hello World’ >> text ( 1 ) % 인덱싱 ans = ‘H’ >> text ( 1 )= ‘M’ % 해당 문자형 배열의 첫번째 인덱스의 원소를 ‘M’으로 변경 text = ‘Mello World’

(문자형 배열의 부분 수정이 통째로 입력보다 불편하다는 설명은 잠시 삭제하였습니다.) Letsdev (토론) 2020년 9월 30일 (수) 00:27 (KST)

문자형은 숫자처럼 다룰 수도 있습니다. 참고로 소문자 ‘a’는 값으로 97과 같습니다.

>> ‘a’ == 97 ans = logical 1

자세한 내용은 아스키코드표, 유니코드표 등을 참고하십시오. Matlab은 유니코드 인코딩 방식의 하나인 UTF-8을 기본으로 합니다.

>> slCharacterEncoding % 매트랩의 인코딩을 확인하거나 변경할 수 있는 내장함수. 참고용이므로 몰라도 된다. ans = ‘UTF-8’

문자열(Matlab 2016 b 및 이후) [ 편집 ]

이 항목을 설명하는 동안 등장하는 ‘문자열’이란 문자형 배열을 포함하지 않는, 좁은 의미의 문자열입니다.

문자열은 큰따옴표(“) 사이에 입력한다는 점이 문자형 배열 작성과 차이점입니다.

큰따옴표 사이에 입력함으로써 몇 가지 동작에 차이가 발생합니다. 문자열 자체에서 인덱싱을 하는 것은 불가능해지지만, 서로 길이가 다른 여러 문자열로 배열을 만드는 것이 가능해졌습니다.

문자형 배열만 지원하는 버전에서는 문자열의 길이가 다를 경우 부족한 칸을 공백 문자로 채우거나 cell 타입이라는 것으로 객체화하여야 했습니다. 이제 문자열을 본격적으로 지원하면서 일반 배열을 생성하는 것과 같은 모양으로 다룰 수 있게 되었습니다.

>> str = “abc” ; >> str ( 2 )

Index exceeds the number of array elements (1).

>> strlist = [ “김철수” , “김수한무” ; “고북이와두루미삼” , “천갑자동” ]

strlist = 2×2 string array “김철수” “김수한무” “고북이와두루미삼” “천갑자동”

행렬의 연산 [ 편집 ]

덧셈과 뺄셈은 특별한 거 없이 그냥 행렬의 크기가 동일하면 서로 더하고 뺄 수 있습니다. 하나의 행렬에서 스칼라 양을 빼면 행렬의 모든 원소에서 연산이 실행됩니다.

>> A =[ 1 : 3 ; 3 : 5 ; 6 : 8 ] A = 1 2 3 3 4 5 6 7 8 >> A – 8 ans = – 7 – 6 – 5 – 5 – 4 – 3 – 2 – 1 0

행렬의 곱셈은 수학에서의 행렬의 곱셈과 동일합니다. aXb 행렬과 cXd 행렬을 서로 곱해주기 위해서는 b=c이어야 하며, 결과값은 aXd행렬이 됩니다.

>> B = ans % B는 3*3행렬 B = – 7 – 6 – 5 – 5 – 4 – 3 – 2 – 1 0 >> C =[ 1 2 3 4 ; 3 4 5 6 ; 7 8 9 10 ] % C는 3*4 행렬 C = 1 2 3 4 3 4 5 6 7 8 9 10 >> B * C % 3*3행렬에 3*4 행렬을 곱하는 것은 가능하고, 결과는 3*4 행렬입니다. ans = – 60 – 78 – 96 – 114 – 38 – 50 – 62 – 74 – 5 – 8 – 11 – 14 >> C * B % 3*4행렬에 3*3 행렬을 곱하는 것은 불가능하고, 에러가 나옵니다. error : operator * : nonconformant arguments ( op1 is 3 x4 , op2 is 3 x3 )

덧셈, 뺄셈과 마찬가지로 하나의 행렬에 스칼라 양을 곱해주면 해당 형렬의 모든 원소에 곱셈이 실행됩니다.

octave : 1 > A =[ 1 2 ; 3 4 ] A = 1 2 3 4 octave : 2 > 3 * A ans = 3 6 9 12

행렬을 이용한 연립방정식의 풀이 [ 편집 ]

행렬을 이용해 연립 방정식을 풀기 위해선 우선 연립 방정식을 행렬의 곱으로 바꾼 다음, 왼쪽 나눗셈(\)을 이용하거나 역행렬을 구하는 명령(inv(A)), 행렬의 형태를 바꾸어 구하는 방법을 이용하면 됩니다.

왼쪽 나눗셈을 이용한 풀이를 보겠습니다. 2x-y+3z=4, x+4y+z=2, 6x+10y+3z=0의 해를 구한다고 한다면,

octave : 3 > A =[ 2 – 1 3 ; 1 4 1 ; 6 10 3 ] A = 2 – 1 3 1 4 1 6 10 3 octave : 4 > b =[ 4 ; 2 ; 0 ] b = 4 2 0 octave : 5 > x = A \ b x = – 1.80488 0.29268 2.63415

같은 연립방정식을 역행렬 명령어를 이용해 풀어봅시다. A*x1=b에서 양변에 A의 역행렬(inv(A))를 곱해준다고 할 때, x1=inv(A)*b가 되므로,

octave : 6 > x1 = inv ( A ) * b x1 = – 1.80488 0.29268 2.63415

위의 예시와 동일한 결과가 나옴을 알 수 있습니다.

참고) inv(A)와 A\eye(3)은 동일한 값입니다.

octave : 26 > inv ( A ) – A \ eye ( 3 ) ans = 1.3878e-017 1.1102e-016 5.5511e-017 – 1.3878e-017 0.0000e+000 – 1.3878e-017 0.0000e+000 0.0000e+000 – 2.7756e-017

다음으로 행렬의 형태를 바꾸어주어 풀 수도 있습니다. 이때는 [ x y z ] [ 2 1 6 − 1 4 10 3 1 3 ] = [ 4 2 0 ] {\displaystyle {\begin{bmatrix}x&y&z\end{bmatrix}}{\begin{bmatrix}2&1&6\\-1&4&10\\3&1&3\end{bmatrix}}={\begin{bmatrix}4&2&0\end{bmatrix}}} 에서 [ x y z ] {\displaystyle {\begin{bmatrix}x&y&z\end{bmatrix}}} 를 구해주면 됩니다.

이 식은 원래 구하고자 하는 연립방정식의 행렬식 형태인 [ 2 − 1 3 1 4 1 6 10 3 ] [ x y z ] = [ 4 2 0 ] {\displaystyle {\begin{bmatrix}2&-1&3\\1&4&1\\6&10&3\end{bmatrix}}{\begin{bmatrix}x\\y\\z\end{bmatrix}}={\begin{bmatrix}4\\2\\0\end{bmatrix}}} 에서 좌변의 곱하는 순서를 바꾸고 모든 행렬을 전치해준 것과 같습니다.

octave : 11 > A ‘ ans = 2 1 6 – 1 4 10 3 1 3 octave : 12 > b ‘ ans = 4 2 0 octave : 13 > x2 = b ‘* inv ( A ‘ ) x2 = – 1.80488 0.29268 2.63415

원소별 연산 [ 편집 ]

같은 크기의 행렬끼리 연산할 때, 수학에서의 행렬의 곱셈을 이용하지 않고 원소끼리만 연산하고 싶다면 연산 기호 앞에 마침표(.)를 찍어주면 됩니다.

octave : 14 > A =[ 2 3 ; 5 6 ] A = 2 3 5 6 octave : 15 > B =[ 5 5 ; 6 2 ] B = 5 5 6 2 octave : 16 > A .* B % 원소끼리 단순 곱셈 ans = 10 15 30 12 octave : 17 > A * B % 행렬의 곱셈을 이용한 결과. 원소끼리 단순히 곱한 것과 다릅니다. ans = 28 16 61 37

원소별 곱셈(.*) 이외에도 나눗셈(./), 거듭제곱(.^), 왼쪽 나눗셈(.\)이 있습니다.

예제) − 5 ≤ x ≤ 5 {\displaystyle -5\leq x\leq 5} 인 정수에 대하여, y = x 2 − 4 x {\displaystyle y=x^{2}-4x} 값을 나열하여라.

octave : 18 > x =[ – 5 : 5 ], y = x .^ 2 – 4 * x x = – 5 – 4 – 3 – 2 – 1 0 1 2 3 4 5 y = 45 32 21 12 5 0 – 3 – 4 – 3 0 5

행렬에 관한 기타 함수 [ 편집 ]

mean(A) : A가 행렬일 때, 원소들의 산술 평균값을 알려줍니다.

max(A) : A행렬에서 가장 큰 값을 알려줍니다.

[m, n]=max(A) : A행렬에서 가장 큰수 m과, 그 수의 위치 n을 알려줍니다. 꼭 m과 n으로 문자를 정할 필요 없이 아무 문자나 해도 됩니다.

octave : 19 > [ m , n ]= max ( y ) % 위 예제에서 사용한 y 행렬에서 가장 큰 값은 m에, 위치는 n에 지정합니다. m = 45 n = 1 이차원 이상의 행렬에서는 m에 가장 큰 값을, n에 그 값의 행번호를 알려줍니다. octave : 21 > Y =[ y ; y – 1 ; linspace ( 30 , 55 , 11 )] Y = Columns 1 through 8 : 45.00000 32.00000 21.00000 12.00000 5.00000 0.00000 – 3.00000 – 4.00000 44.00000 31.00000 20.00000 11.00000 4.00000 – 1.00000 – 4.00000 – 5.00000 30.00000 32.50000 35.00000 37.50000 40.00000 42.50000 45.00000 47.50000 Columns 9 through 11 : – 3.00000 0.00000 5.00000 – 4.00000 – 1.00000 4.00000 50.00000 52.50000 55.00000 octave : 22 > [ m , n ]= max ( Y ) m = Columns 1 through 10 : 45.000 32.500 35.000 37.500 40.000 42.500 45.000 47.500 50.000 52.500 Column 11 : 55.000 n = 1 3 3 3 3 3 3 3 3 3 3

min(A) : max(A)와 동일하나, 최솟값을 찾아줍니다.

[m, n]=min(A) : [m, n]=max(A)와 동일하나, 최솟값과 위치를 찾아줍니다.

sum(A) : 원소들의 합을 알려줍니다. 벡터가 아닌 행렬에 대해서는 각 열의 합을 벡터로 나타내 줍니다.

>> A =[ 1 2 ; 3 4 ]; sum ( A ) ans = 4 6

sort(A) : 원소들을 오름차순으로 정렬해줍니다. 만약 이차원 이상의 행렬이라면 각각의 열에 대해서 오름차순으로 정리해 줍니다.

octave : 27 > A A = 2 – 1 3 1 4 1 6 10 3 octave : 28 > sort ( A ) ans = 1 – 1 1 2 4 3 6 10 3

median(A) : 중앙값을 알려줍니다.

octave : 30 > B =[ 5 9 2 4 ]; median ( B ) ans = 4.5000 이차 이상의 행렬에 대해서는 각 열의 중앙값을 알려줍니다. octave : 27 > A A = 2 – 1 3 1 4 1 6 10 3 octave : 29 > median ( A ) ans = 2 4 3

std(A) : 표준편차를 알려줍니다.

det(A) : 행렬식을 알려줍니다.

octave : 32 > B =[ 5 9 ; 2 4 ], det ( B ) B = 5 9 2 4 ans = 2.0000

dot(a,b) : 두 벡터의 내적을 구해줍니다.

octave : 33 > a =[ 1 2 3 ], b =[ 4 5 6 ] a = 1 2 3 b = 4 5 6 octave : 34 > dot ( a , b ) ans = 32

cross(a,b) : 두 벡터의 외적을 구해줍니다.

octave : 35 > cross ( a , b ) ans = – 3 6 – 3

응용 예제 [ 편집 ]

세 힘의 합력 크기를 Matlab을 이용해 구하고, 합력의 작용 방향도 구하시오.

octave : 36 > F1 = 400 * [ cosd ( – 20 ), sind ( – 20 )], F2 = 500 * [ cosd ( 30 ), sind ( 30 )], F3 = 700 * [ cosd ( 143 ), sind ( 143 )] F1 = 375.88 – 136.81 F2 = 433.01 250.00 F3 = – 559.04 421.27 octave : 37 > F = F1 + F2 + F3 F = 249.84 534.46 octave : 38 > F_total = sqrt ( sum ( F .^ 2 )) F_total = 589.98 octave : 39 > d = atand ( F ( 2 ) / F ( 1 )) d = 64.945

참고한 글, 강의 [ 편집 ]

키워드에 대한 정보 매트랩 행렬 추출

다음은 Bing에서 매트랩 행렬 추출 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 02 matlab 행렬생성

  • #matlab

02 #matlab #행렬생성


YouTube에서 매트랩 행렬 추출 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 02 matlab 행렬생성 | 매트랩 행렬 추출, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  아는 형님 171 회 다시 보기 | [골라봐야지] 진짜 제대로 묻는다. 왜 이렇게 재밌어? 분량 좍좍 뽑아내는 방탄소년단(Bts) 아형 활약상ㅣ아는형님ㅣJtbc 170923 방송 224 개의 자세한 답변

Leave a Reply

Your email address will not be published. Required fields are marked *