• 검색 결과가 없습니다.

중고생들을 위한 매스매티카 기초#34:

N/A
N/A
Protected

Academic year: 2021

Share "중고생들을 위한 매스매티카 기초#34:"

Copied!
5
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

오늘의 주제: Array(리스트안 리스트)1

(명령어: Table, Grid, TableForm, MatrixForm)

-

* 이 영상은 콩글리쉬와 브로큰 잉글리쉬/코리안, 그리고 주변잡음을 포함하고 있습니다.

나레이터: John Lee

학생: 존리

선생님: Jon Lee

* 매스매티카는 무료 로 온라인에서 TRY할 수 있습니다. 자세한 내용은 이 화면 또는 설명에 있는 링크를 참고하세요. - JohnLeeEdu.Tistory.Com/28

순서쌍부터 시작하자

순서쌍은 리스트안에 리스트가 들어가 있다. 이런 리스트안에 또 리스트가 있는 걸 Array라 부른다. 상황에 따라서 행렬(Matrix)이라고 부르기도 한다.

In[284]:= {{1, 2}, {1, 2}, {1, 2}}

Out[284]= {{1, 2}, {1, 2}, {1, 2}}

위의 경우 순서쌍의 갯수를 행의 갯수 --> 3

각각 순서쌍 안 원소의 갯수를 열의 갯수라고 한다. -->2

그래서 3행2열 행렬이 된다. “three by two array” or “three by two matrix”

위의 경우는 모든 순서쌍이 똑 같은 갯수의 원소(2)를 가지고 있다. - 착한 Array 다.

Grid(격자, 좌표, 망)이라는 명령어를 쓰면 Array를 2D로 display해준다. 그래서 행과 열이 분명히 표현된다.

In[285]:= Grid[{{1, 2}, {1, 2}, {1, 2}}]

Out[285]=

1 2 1 2 1 2

(2)

In[286]:= Grid[{{1, 2}, {1, 2}, {1, 2}}, Frame → All]

Out[286]=

1 2 1 2 1 2

즉 행은 가로줄, 열은 세로줄이다. 3행 2열 (3 x 2)

Array 손수 만들기

그럼 아래와 같은 3행 5열(3x5) 의 Array를 손수 만들려면 리스트를 어떻게 input 해야 될까?

In[287]:= Grid[Partition[Range[15], 5], Frame → All]

Out[287]=

1 2 3 4 5

6 7 8 9 10 11 12 13 14 15

순서쌍 만들 때랑 똑같은데 순서쌍의 원소가 5개가 된다. 큰 리스트안 순서쌍의 순서는 행의 순서가 되고 각각의 순서쌍안 원소의 순서는 열의 순서가 된다.

In[288]:= array0 = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}}

Out[288]= {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}}

In[289]:= Grid[array0, Frame → All]

Out[289]=

1 2 3 4 5

6 7 8 9 10 11 12 13 14 15

(3)

1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

In[291]:= TableForm[array0,

TableHeadings → {Table[Row[{"i", i}], {i, 3}], Table[Row[{"j", j}], {j, 5}]}]

Out[291]//TableForm=

j1 j2 j3 j4 j5

i1 1 2 3 4 5

i2 6 7 8 9 10

i3 11 12 13 14 15

In[292]:= MatrixForm[array0]

Out[292]//MatrixForm=

1 2 3 4 5

6 7 8 9 10 11 12 13 14 15

Array 계산

그런데 Grid라는 명령어는 display 목적이지 계산은 그냥 리스트를 가지고 해야한다. 만약에 각각의 원소에 10을 더하고 싶으면, 또는 다른 계산을 하고 싶으면 Grid 는 빼고 리스트에다 직접하여야 한다.

In[293]:= Grid[array0, Frame → All] + 10

Out[293]= 10 +

1 2 3 4 5

6 7 8 9 10 11 12 13 14 15

In[294]:= array0 + 10

Out[294]= {{11, 12, 13, 14, 15}, {16, 17, 18, 19, 20}, {21, 22, 23, 24, 25}}

(4)

In[295]:= array0 + array0

Out[295]= {{2, 4, 6, 8, 10}, {12, 14, 16, 18, 20}, {22, 24, 26, 28, 30}}

In[296]:= Grid[array0 + array0, Frame → All]

Out[296]=

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30

In[297]:= RowGrid[array0, Frame → All], "

+

",

Grid[array0, Frame → All], "

=

", Grid[array0 + array0, Frame → All]

Out[297]=

1 2 3 4 5

6 7 8 9 10 11 12 13 14 15

+

16 27 38 49 105 11 12 13 14 15

=

12 14 16 18 202 4 6 8 10 22 24 26 28 30

Array 에 Index 붙이기

Array에 있는 원소의 위치를 지칭할 때 첫번째, 두번째, 세번째 원소 이런식으로 하지않고 몇행 몇열 의 원소라고 한다. 행의 index를 i, 열의 index를 j라고 한다면 위의 array에 있는 모든 원소는 {i,j}로서 그 위치를 나타낼 수 있다.

In[298]:= grid0

Out[298]=

1 2 3 4 5

6 7 8 9 10 11 12 13 14 15

예를 들어 {i, j} 가 {2, 3}이면 그 원소는 8이 된다.

예를 들어 {i, j} 가 {3, 5}이면 그 원소는 15가 된다.

(5)

총 몇행 몇열의 Array인지를 보려면 Dimensions 을 사용하면 된다.

In[299]:= Dimensions[array0]

Out[299]= {3, 5}

연습문제 / 강의노트 다운로드

연습문제와 강의노트는 JohnLeeEdu.Tistory.Com 의 자료실에 보관되어 있습니다.

연습문제 꼭 풀어보세요!!!

* 매스매티카는 무료 로 온라인에서 TRY할 수 있습니다. 자세한 내용은 이 화면 또는 설명에 있는 링크를 참고하세요. - JohnLeeEdu.Tistory.Com/28

메모

참조

관련 문서

■ 행렬 A을 가역행렬(invertible matrix) 또는 정칙행렬(nonsingular matrix)이라 한다.. 프로그램의 running time 계산하기. 34.. 프로그램의

만약에 사람이 자유낙하를 한다면 자신의 무게를 전혀 느끼지 못할 것이다… 나는 아주 소스라치게 놀랐다. 이 간단한 생각에 깊은

- 건축물 구조의 계획과 하중에 대한 역학적 계산을 실시 하고 구조도면을 작성함.. • 적재하중은

Zhu, "Defending False Data Injection Attack on Smart Grid Network Using Adaptive CUSUM Test," Proceeding of the 45th Annual Conference on Information Sciences

1,20;December29,1987:17).이후 1988년에 자궁경부암 세포진 검사의 정도 관 리를 위한 “Cl i ni calLaboratory ImprovementAmendments"가 법으로 제정되었으

Thethesi sof" "by Gombri ch,oneofthegreatart hi stori ansi n 20th century,i soneofthosethathavebeen di sputed i n ourdays.Forthemysteri ousway i nwhi

전자교재 개발을 통한 학습의 흥미유발 지식습득의 효율성 증대. ƒ대학

죽고 싶으면 지금까지 그랬듯이 그냥 놔두면 된다.