How can I obtain my expected result?
조회 수: 1 (최근 30일)
이전 댓글 표시
I typed this code
function out=picker(c,in1,in2)
if c
out=fprintf('%d\n'in1);
else
out=fprintf('%d\n'in2);
end
my desire was to get this reslut
>>out=picker(true,5,6)
out=5
>>out=picker(false,5,6)
out=6
but matlab found a bug here .What is wrong with my code and how can I obtain my expected result?
댓글 수: 0
채택된 답변
claudio
2020년 6월 2일
It depends on what type of outcome you need. If you need numeric out
function out = picker(c,in1,in2)
out = in2;
if c, out = in1; end
If you need char outcame
function out = picker(c,in1,in2)
out = sprintf('out = %d',in2)
if c, sprintf('out = %d',in1); end
추가 답변 (2개)
David Hill
2020년 6월 2일
function out=picker(c,in1,in2)
if c
out=in1;
else
out=in2;
end
fprintf('out=%d',out);
댓글 수: 0
Image Analyst
2020년 6월 2일
fprintf() returns the number of characters printed, which is not what you want. What you want is this:
function out = picker(c, in1, in2)
v = [in1, in2];
out = v(c+1);
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!