반응형
Recent Posts
Recent Comments
Link
관리 메뉴

공머씨의 블로그

내가 공부한 옥타브4-행렬입력 방법 (1~9) 본문

내가 공부한 옥타브(매틀랩)/내가 공부한 옥타브

내가 공부한 옥타브4-행렬입력 방법 (1~9)

공머씨 2020. 3. 11. 22:44
반응형

 

제가 주로 컴퓨터 개론 수업시간에 octave를 이용해서 다뤘던 것은 옥타브에서 행렬 입력하기와 계산 들입니다.

 

행렬 만들기부터 사이즈구하기 까지

차근차근해보도록 합시다.

 

1. 첫 번째로 단순히 행이 1이고 열이 3인 1 × 3 행렬을 만들어 봅시다.

 

원소 사이에 , 을 넣어도 정상적으로 실행됩니다.

문법적인 오류가 없습니다.

주의해야 할 것은 , 을 사용하던 띄어쓰기를 하던 해서

열 과열을 정확히 구분 지어줘야 합니다.

1과 2를 연속적으로 쓰면 당연히 12로 받아들이고 12로 출력됩니다.

 

[] 대신에 ()을 사용하는 경우가 있는데 이는 문법적으로 오류가 발생합니다.

행렬 입력 시에 꼭 대괄호를 사용하시기 바랍니다.

 

 

 

 

 

 

 

 

2. 행이 여러 개인 행렬을 입력하고 싶을 때는 어떻게 하는지 알아봅시다.

 

;을 사용해서 행을 구분합니다.

 

행이 3이고 열이 1인

3 ×1 행렬을 만들어 봅시다.

 

 

답부터 보지 말고 직접 해보시기 바랍니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. 이번에는 일정한 증가분을 갖는 행렬을 자동으로 생성할 수 있게 해 봅니다.

수학적으로 등차수열 꼴을 띠는 행렬이라고 할 수 있습니다.

기본적인 문법은 아래와 같습니다.

name= start :increment: end

이름= 시작 값 :증가분=(공차): 마지막 값

 

Q: 행렬 이름이 a이고 1부터 10까지 공차가 2인 수열을 표현하여라.

위의 문법을 보고 직접 해보시기 바랍니다.

 

 

 

 

 

 

 

(유한 엔터)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end를 10으로 설정해서 마지막항이 10 일 것 같지만 규칙에 따라서 2씩 증가했을 때 9 다음에 11이 나오므로 10은 삭제되고 9만 남게 됩니다.

즉 마지막 값보다 작거나 같은 숫자가 화면에서의 마지막항이 됨을 알 수가 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. 특별히 증가분이 1인 수열은 이런 식으로 만듭니다.

이름= 시작 값 : 마지막 값

이렇게 증가분이 1 일 때는 생략하곤 합니다.

 

Q: 1부터 100까지 증가분이 1인 행렬을 만들어 봅시다.

(행은 1이고 열은 100인 행렬이 됩니다.)

 

 

 

 

 

모두 같은 행에 있는 것인데 화면상 다른 행처럼 보일 수 있습니다.

octave가 자체적으로 columns 17 through 32로 나타낸 것을 보면 17열부터 32열까지임을 표기함으로써 같은 행임을 표현한 것을 알 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5. 증가분이 소수인 행렬을 만들어봅시다.

 

문법

이름= 시작 값: 증가 값: 마지막 값

으로 변함이 없습니다.

다만

증가 값이 0.5라면 0.5라고 표기하지 않고. 5라고 표기하기도 합니다.

정수 부분이 1보다 큰 경우 정수 부분을 생략해서는 안됩니다.

 

Q: 시작 값이 5이고 마지막 값이 6이며 증가 값이 0.1인 행렬 U를 만들어라.

(주의: 증가값이 1일 때와 달리 소수일 때는 1을 생략하면 안 됩니다)

 

 

 

 

 

(유한 엔터)

 

 

 

 

 

 

 

첫 번째 '>>'오류 없음 두 번째'>>'문법 오류(syntax error)

 

 

주의 사항을 지키지 않았을 경우 아래의 U처럼 문법 오류라고 뜹니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. 행렬에 행을 추가

 

 

위의 코드는 열을 추가한 것이고 아래 코드는 행을 추가한 것입니다.

차이가 보이시나요??

기존의 행렬 a와 추가하려는 행렬 b의 행이 서로 다름을 ;을 이용해 구분해주었습니다.

 

열추가 에서도 기존 행렬의 행수와 추가하려는 행렬의 행수가 맞아야만 실행이 됩니다.

 

 

 

 

이번 포스팅은 여기서 마치겠습니다.

읽어 주셔서 감사합니다.

하트 버튼과 구독은 큰 힘이 됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7. 열을 추가하는 방법

열을 추가하는 것은 간단합니다.

 

대표 사진 삭제

사진 설명을 입력하세요.

 

 

기존 행렬 a의 열이 3개였는데 열이 3개인 행렬 b를 추가함으로써 열이 총 6개가 된 것을 볼 수가 있습니다.

 

 

 

 

 

만약 기존 행렬의 행과 추가하려는 행렬의 행이 같지 않은데 열 추가를 하려고 하면 아래와 같은 오류가 뜹니다.

 

 

위 코드를 머릿속에 그려보면 아래와 같이 되는데 아래는 행렬이 아닙니다.

x는 원소가 존재하지 않음을 나타내 보았습니다.

 

1 2 3 4 5 6

X X X 7 8 9

 

 

 

 

또 다른

예시를 통해서 바로 살펴보도록 합시다.

 

 

보시다시피 행렬 a 크기는 2*2

행렬 b의 크기는 2*1 임을 알 수 있습니다.

2의 오른쪽에 5가

4의 오른쪽에 6을 위치시키고 싶으면

 

행렬 a에 행렬 b를 열추가 해주면 됩니다.

 

 

다음과 같이 입력해주면 됩니다.

 

 

 

이때 조합하려는 두 행렬의 행이 서로 같아야 함을 알 수 있습니다

 

 

 

 

 

또 다른 방법으로는

 

(아래 행렬에서 p는 바로 위 행렬에서 a와 b의 조합인 행렬 p입니다.)

 

 

행렬 d는 p와 [7;7]을 조합한 꼴입니다.

처음 볼 때는 복잡해 보일 수 있어도 뜯어서 생각해보면 간단합니다.

위의 원리와 같지만 약간 다른 점은

[7;7]에 이름을 부여하지 않고 그대로 추가해 주었습니다.

 

아래에서도 사용할 변수이니 clear all로 지우지 마세요!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8.

행렬 원소 찾기

(아래와 같이 단순한 구성의 행렬이 아닌 방대한 원소를 가지고 있는 행렬에서 사용될 것 같다.)

설명을 보고 바로 예제를 풀어보기 바랍니다.

어떤 3*3인 x행렬에서

1행, 3열의 원소가 무엇인지 보려면

x(1,3)

이라고 입력해주면 됩니다.

 

Q; 6번에서 사용된 d행렬의 2행 3열의 원소를 octave를 이용해 찾아라.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

여기서 ans는 answer입니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9. 행렬 크기 구하기

 

예를 들어 a행렬의 크기를 구하려면

size () 함수를 사용해서 구할 수 있습니다.

size (a)라고 해주면

결과 값에는 a의 행과 열이 차례로 표시됩니다

Q: 행렬 d의 크기를 구해라

 

 

 

 

행렬 d의 행은 2이고 열은 4 임을 바로 알 수 있습니다.

size함수도 위와 같이 단순한 행렬이 아닌 방대한 크기를 가진 행렬의 크기를 구할 때 사용될 것 같습니다.

 

 

 

 

이번 포스팅은 여기서 마치겠습니다.

다음 시간부터는 행렬의 계산부터 해보겠습니다.

읽어 주셔서 감사합니다! 

반응형
Comments