| 제목 | 답변완료 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 수정























