본문 바로 가기

학습 Q&A

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

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

Q&A 메뉴.png

※ 유의사항
강의에 나오지 않는 내용에 대한 풀이나 해설은 답변을 드릴 수가 없습니다.
학습과 무관한 내용 및 비방/욕설 등 게시판 성격과 무관한 내용은 사전 고지없이 삭제됩니다.
답변 완료된 게시글은 수정 및 삭제 불가합니다.

kwonjunpyo_03.png

게시판 글보기
제목 답변완료 매트랩 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 수정