Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

Write a function called picker that takes three input arguments called condition, in1 and in2 in this order. The argument condition is a logical. If it is true, the function assigns the value of in1 to the output argument out, otherwise, it assigns

조회 수: 1 (최근 30일)
function [cd,a,b]=picker(cd,a,b);
if picker(a<b,a,b)
fprintf('out=a');
else
fprintf('out=b')
end
  댓글 수: 2
evan muas
evan muas 2019년 12월 9일
This is my solution. If you assign cond==1 or true, it still works well.
function out= picker(cond,in1,in2)
if cond==1
out=in1;
else
out=in2;
end
Guillaume
Guillaume 2019년 12월 9일
When cond is logical, if cond == 1 is just a slower way of doing if cond.
cond == 1 converts the logical to a double, compare that double to one to return the exact same logical value you started with.

답변 (10개)

Stephen23
Stephen23 2019년 7월 11일
편집: Stephen23 2019년 7월 11일
function [cd,a,b]=picker(cd,a,b);
if picker(a<b,a,b)
fprintf('out=a');
else
fprintf('out=b')
end
Your function ignores the first input entirely, and then for no obvious reason it recursively calls itself, providing its first input (which is ignored anyway) as being the output of the comparison a<b (a comparison which is not mentioned anywhere in your assignment). Then you provide three outputs from the function, none of which are the one output that the assignment requested. For no obvious reason you print some data to screen, which is nice, but is irrelevant for the assignment that you were actually given.
You need to read the assignment, understand what it requests, and then implement that... in fact your assignment is so clearly explained, it almost does all of your work for you:
function out = picker(cond,in1,in2);
if ???
out = ???;
else
out = ???;
end
I left you three very simple things for you to complete. (hint: use each input variable once).
  댓글 수: 3
Guillaume
Guillaume 2019년 7월 11일
Well of course. What else did you expect?
if true
dosomething
else
dosomethingelse
end
is always going to execute dosomething since you're explicitly setting the if condition to true.
Stephen23
Stephen23 2019년 7월 11일
편집: Stephen23 2019년 7월 11일
@Moeez ur Rehman Qureshi: much better, but you should read my answer "use each input variable once": how many inputs does the function have, and how many have you used?

Chech Joseph
Chech Joseph 2019년 9월 3일
function out = picker(condition,int1,int2)
condition = int1 > int2
if condition == 1
out = int1
elseif condition == 0
out = int2
else
return
end
still not pasing both tests. Why?
  댓글 수: 2
Steven Lord
Steven Lord 2019년 9월 3일
Your function ignores the value its caller passes into it as the first input, throwing the user's input away and replacing it with the result of "int1 > int2". Is that how your assignment states the function should behave?
I don't know if your assignment is different from the one posted by Moeez ur Rehman Qureshi but if it's the same no, your function does not behave the way the assignment states it should.
Rik
Rik 2019년 9월 3일
Also, this is not an answer, but a comment or a question. You should have put it in the comment section.

Ahmed J. Abougarair
Ahmed J. Abougarair 2020년 4월 19일
편집: Rik 2020년 4월 20일
function out = picker(condition,int1,int2)
y=logical(condition)
if y==1
out = int1;
else
out = int2;
end
end
  댓글 수: 3
Rik
Rik 2020년 4월 20일
Why are you posting complete solutions to homework questions?
And if y is already a logical, why to you compare it to 1?
Anurag Verma
Anurag Verma 2020년 5월 30일
function out=picker(condition,in1,in2)
if condition==true
in1<in2 && in2>in1
out=in1
else condition==false
in2>in1||in2==in1
out=in2
end

Vishal Natraj
Vishal Natraj 2020년 4월 25일
편집: Vishal Natraj 2020년 4월 25일
function[out] = picker(condition, in1, in2)
if %fill the conditon on your own
out = % ???;
else
out = %???
end
  댓글 수: 5
Jun Choi
Jun Choi 2020년 4월 26일
function out = picker(condition,in1,in2)
if condition == 1
out=fprintf('%d\n',in1)
else
out=fprintf('%d\n',in2)
end
@Vishal, Thank you for the explanation. I understand what the correct answer is. Then, I tried to come up with different form of answer above. What is wrong this code?
Stephen23
Stephen23 2020년 4월 26일
편집: Stephen23 2020년 4월 26일
@Jun Choi: the fprintf documentation explains that its output is "...the number of bytes that fprintf writes". Is that what your assignment requests that your function output should be?
Does the assignment require that your function should print something to the command window?

sourab sarkar
sourab sarkar 2020년 5월 23일
편집: sourab sarkar 2020년 5월 23일
function out=picker(cdn,in1,in2)
if(cdn ==1)
out=in1;
else
out=in2;
end
---------------------

sourab sarkar
sourab sarkar 2020년 5월 23일
As the assignment example explains that the user enters the arguments i.e the condition and value of in1 and in2.So,task is to write a program that can check for all conditions given by the user and produce the aprocreate output.

Roweida Bawab
Roweida Bawab 2020년 5월 23일
This is how I solved it
function out = picker (condition, in1, in2)
if condition == true
out = in1;
else out = in2;
return
end
  댓글 수: 2
Stephen23
Stephen23 2020년 5월 23일
편집: Stephen23 2020년 5월 23일
Writing condition == true is not required, as explained in this comment:
The return is not required.
It would be much clearer to write out = in2; on its own line.

Anurag Verma
Anurag Verma 2020년 5월 30일
function out=picker(condition,in1,in2)
if condition==true
in1<in2 && in2>in1
out=in1
else condition==false
in2>in1||in2==in1
out=in2
end
this is the code that should be used and do not copy paste plz understand and do.
  댓글 수: 1
Stephen23
Stephen23 2020년 6월 4일
function out=picker(condition,in1,in2)
if condition==true % superfluous "==true", see Guillaume's comment below the question
in1<in2 && in2>in1 % serves no functional purpose
out=in1 % probably should use trailing semi-colon
else condition==false % superfluous "condition=false", should be simple "else"
in2>in1||in2==in1 % serves no functional purpose
out=in2 % probably should use trailing semi-colon
end
Note that the syntax
else X
is actually equivalent to
else
X
where X is simply displayed and serves no functional purpose.

AYUSH MISHRA
AYUSH MISHRA 2020년 6월 4일
function out=picker(condition,in1,in2)
if condition==true
out=in1;
else out=in2;
end
SOLUTION :
picker(true,1,2)
ans =
1
picker(false,1,2)
ans =
2

ROHAN SUTRADHAR
ROHAN SUTRADHAR 2020년 6월 6일
function out = picker(condition,in1,in2)
if condition==0
out = in2;
else
out = in1;
end

이 질문은 마감되었습니다.

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by