본문 바로 가기

학습 Q&A

강의 내용 궁금증! 교수님이 직접 답변 드립니다

  • 홈
  • 교수소개
  • 공학계열
  • 권준표 교수님
  • 학습 Q&A

ic_qna.png

강의 범위를 벗어난 질문은 답변이 어렵습니다.
비방, 욕설 등 게시판 성격과 무관한 내용은 사전 고지 없이 삭제됩니다.
답변 완료된 게시글은 수정 및 삭제 불가합니다.

kwonjunpyo_03.png

게시판 글보기
제목 답변완료 4강 벡터와 행렬 내용 중 sum함수
질문유형 강좌내용 교수님 권준표
과목 매트랩 강좌명
작성자 오*서 (o****0) 등록일 2019-01-17 23:56

안녕하세요~~

sum 함수 사용법 중에 궁금한 점이 있어서 질문드려요.

 

교재 설명으로 

"sum 함수는 각 열의 합을 구하여 준다. A의 모든 원소들의 합을 구하려면 sum(sum(A))를 이용한다."

라고 적혀있습니다.

그런데 뒤따라 나오는 예제에서는

 

>> A = [2 1 3 ; -1 0 1 ; 4 2 6]

 

A =

 

     2     1     3

    -1     0     1

     4     2     6

 

>> sum(A)

 

ans =

 

     5     3    10

 

>> sum(sum(A))

 

ans =

 

    18

 

 sum(A) 의 결과는 1x3행렬로 [ 5 3 10 ] 으로 저장이 되는데 여기에 다시 sum을 하면 sum(sum(A)) = 18 이라는 결과가 나옵니다.

 

sum 함수가 각 열의 합을 구해준다고 했으니 sum(A) = [5 3 10] 행렬의 각 열의 합은 5 3 10이 되는 것 아닌가요??

 

 

 

 

>> help sum

sum - 배열 요소의 합

 

     크기가 1이 아닌 첫 번째 배열 차원을 따라 A의 요소의 합을 반환합니다.

 

    S = sum(A)

    S = sum(A,dim)

    S = sum(___,outtype)

    S = sum(___,nanflag)

 

    참고 항목 cumsum, diff, mean, prod

 

    sum에 대한 함수 도움말 문서 페이지

    이름이 sum인 다른 함수  

 

help sum 을 입력하면 위와 같은 내용이 나오는데, 크기가 1이 아닌 첫 번째 배열 차원이라는 문장도 이해가 안되네요. ㅠ

 

답변 완료된 질문과 답변은 수정 및 삭제가 불가합니다.

댓글
0

안녕하세요?

 

기초문법 관련 질문이여서,

바로 답변 드립니다.

 

우선, 매트랩 help를 다시 보면 아래와 같이 적혀 있습니다.

https://kr.mathworks.com/help/matlab/ref/sum.html

 

S = sum(A)는 크기가 1이 아닌 첫 번째 배열 차원을 따라 A의 요소의 합을 반환합니다.

- A가 벡터인 경우 sum(A)는 요소의 합을 반환합니다.

- A가 행렬인 경우 sum(A)는 각 열의 합이 포함된 행 벡터를 반환합니다.

- A가 다차원 배열인 경우 sum(A)는 크기가 1이 아닌 첫 번째 배열 차원을 따라 동작을 수행하며, 요소를 벡터로 취급합니다. 이 차원은 1이 되고 다른 모든 차원의 크기는 변경되지 않습니다.

 

 

항상 각 열의 합계를 구하도록 만들어 진 것이 아니라,

상황과 변수에 따라, 입력된 값이 벡터인지, 행렬인지에 따라 다르게 구해집니다.

 

 

예제처럼

sum(sum(A))에서 

sum(A)의 결과가 1행 행렬이므로, 두번째에서 전부 더해진 것 입니다.

 

 

이 함수를 만든 사람이 이게 편하다고 생각한 것 같습니다.

(실제로도 그렇습니다.)

 

 

 

말씀하신 것 처럼 무조건 각 열 또는 행의 합을 구하게 하려면,

(자동으로 변하게 하지 않으려면)

 

dim 변수를 넣어주시면 됩니다.

 

- sum(A,1)은 A의 열에 있는 연속된 요소에 대해 동작을 수행하고 각 열의 합으로 구성된 행 벡터를 반환합니다.

 

 

- sum(A,2)는 A의 행에 있는 연속된 요소에 대해 동작을 수행하고 각 행의 합으로 구성된 열 벡터를 반환합니다.

 

 

  • 2019-01-18
  • 2024-12-12 수정