제목 | 답변완료 매트랩 nargout관련 질문 드립니다. | ||
---|---|---|---|
질문유형 | 강좌내용 | 교수님 | 권준표 |
과목 | 매트랩 | 강좌명 | |
작성자 | 이*민 (k*****m) | 등록일 | 2021-09-30 22:09 |
안녕하세요 이번에 advanced 1 과정 2강을 수강하는 도중에 질문이 생겨서 글 올립니다.
1.문제풀이5번에서 함수를 수행할때 출력이 x+iy로 출력 되도록 nargout을 활용하는 부분에서 --------------------------------------- function [x,y] = rectan(r,theta) x= r*cos(theta); y= r*sin(theta); if nargout<2 x = x+i*y; end end ---------------------------------------- 출력되는 인자가 2개 이하일때로 설정하여 다음과 같이 작성 하였는데, 여기서 `출력되는 인자`의 정확한 정의를 모르겠어서 알아보는 도중 아래와 같은 식을 작성한뒤에 명령창에 쳐본 결과 ---------------------------------------- function [x,y] = rectan(r,theta) x= r*cos(theta); y= r*sin(theta); nargout end ----------------------------------------- 명령창에 입력하는 값이 rectan(2,30*pi/180) 은 nargout이 0이나오고 [x,y] = rectan(2,30*pi/180)은 nargout값이 2이 나오고 x= rectan(2,30*pi/180) 의 nargout값이 1이 나오는데
`명령창에 쓰여진 출력값`을 의미하는 것인가요? 그렇다면 맨 위 식의 if문에서 if nargout < 1 로 설정한뒤 rectan(2,30*pi/180)을 명령창에 치는 것도 가능한 것인지 궁금합니다
2.또한 nargout에 대해 알아가는 과정에서 `출력인자`가 출력되는 `값`인지 확인해보고싶어 다음과 같이 작성해보았는데 --------------------------------------- function [x,y,z] = test(a,b,c) x=a; y=b; z=c; nargout end ----------------------------------------- 답(`ans`)으로 나오는 값이 a값, 즉 x값만 나오는데 function 출력 변수의 처음 변수(x)만 ans로 나오는건가요?
#매트랩 #기계공학 #nargout
답변 완료된 질문과 답변은 수정 및 삭제가 불가합니다. |
- 댓글
- 0
[첫 번째 질문에 대한 답변]
nargout은 function의 출력인자 갯수를 의미합니다.
rectan(2,30*pi/180)
만 입력하시면,
출력인자가 한 개로 설정되어
ans = 1.7321 + 1.0000i
만 나오게 됩니다.
그러나 만약
[x,y]=rectan(2,30*pi/180)
를 입력하시면
출력인자가 2개로 설정되었기 때문에
nargout<2이 성립하지 않아서
x = 1.7321
y = 1.0000
로 나오게 됩니다.
질문하신 것처럼
if nargout < 1 로 설정한 뒤
rectan(2,30*pi/180)을 명령창에 치게 되면
x = 1.7321
y = 1.0000
로 나오게 되겠지만
출력인자가 0개라면 function에 의미가 없기 때문에
불필요한 문장이 될 것 같습니다.
[두 번째 질문에 대한 답변]
nargout만 치면
function을 불렀을 때
출력인자의 갯수를 보여줄텐데
test(1,2,3)을 입력하신다면,
nargout = 0 (ans = 0)
x = 1 이기 때문에
ans = 1
을 보여줍니다.
대신,
[x,y,z]=test(1,2,3)
을 입력해줌으로써
출력인자를 3개로 지정해준다면,
ans = 3 이 되면서
x=1
y=2
z=3
을 보여줄 겁니다.
만약
[x,y]=test(1,2,3)
를 입력함으로써
출력인자를 2개로 지정해준다면,
ans = 2 이 되면서
x=1
y=2
을 보여줄 겁니다.
(z=3을 보여주지 않겠습니다.)
도움이 됐기를 바랍니다.
- 2021-10-12
- 2024-12-12 수정