Varargout - How to realize function call
조회 수: 1 (최근 30일)
이전 댓글 표시
Hey guys,
let us assume the following function:
function [out1,out2,out3]=test(j,k)
out1= nargin;
out2 = j-k;
if out2 == 10
out3 = 5;
end
end
The function call [val1,val2,val3] = test(10,11) returns an error because c is obviously undefined. How do I make this code run so that out3 is returned when it exists?
Thanks for your help!
댓글 수: 1
Guillaume
2019년 10월 21일
The function call [val1,val2,val3] = test(10,11)
will always require 3 outputs from the function, so test must always return at least 3 outputs for that call to be valid.
That's independent of whether or not the function only returns some outputs under some conditions.
채택된 답변
Stephen23
2019년 10월 21일
Simpler:
function [out1,out2,out3]=test(j,k)
out1= nargin;
out2 = j-k;
out3 = [];
...
if out2 == 10
out3 = 5;
end
end
댓글 수: 0
추가 답변 (2개)
per isakson
2019년 10월 21일
편집: per isakson
2019년 10월 21일
varargout exercise. Try something like this
function varargout = test( j, k )
out1= nargin;
out2 = j-k;
if out2 == 10
out3 = 5;
end
if exist( 'out3', 'var' ) == 1
varargout = { out1, out2, out3 };
else
varargout = { out1, out2, [] };
end
end
or
function varargout = test( j, k )
out1= nargin;
out2 = j-k;
if out2 == 10
out3 = 5;
else
out3 = [];
end
varargout = { out1, out2, out3 };
end
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!