Info

Questa domanda è chiusa. Riaprila per modificarla o per rispondere.

# 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 visualizzazione (ultimi 30 giorni)
Moeez ur Rehman Qureshi il 11 Lug 2019
Chiuso: Image Analyst il 6 Giu 2020
function [cd,a,b]=picker(cd,a,b);
if picker(a<b,a,b)
fprintf('out=a');
else
fprintf('out=b')
end
##### 2 CommentiMostra 1 commento meno recenteNascondi 1 commento meno recente
Guillaume il 9 Dic 2019
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.

### Risposte (10)

Stephen23 il 11 Lug 2019
Modificato: Stephen23 il 11 Lug 2019
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 CommentiMostra 2 commenti meno recentiNascondi 2 commenti meno recenti
Stephen23 il 11 Lug 2019
Modificato: Stephen23 il 11 Lug 2019
@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 il 3 Set 2019
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 CommentiMostra 1 commento meno recenteNascondi 1 commento meno recente
Rik il 3 Set 2019
Also, this is not an answer, but a comment or a question. You should have put it in the comment section.

Ahmed J. Abougarair il 19 Apr 2020
Modificato: Rik il 20 Apr 2020
function out = picker(condition,int1,int2)
y=logical(condition)
if y==1
out = int1;
else
out = int2;
end
end
##### 3 CommentiMostra 2 commenti meno recentiNascondi 2 commenti meno recenti
Anurag Verma il 30 Mag 2020
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 il 25 Apr 2020
Modificato: Vishal Natraj il 25 Apr 2020
function[out] = picker(condition, in1, in2)
if %fill the conditon on your own
out = % ???;
else
out = %???
end
##### 5 CommentiMostra 4 commenti meno recentiNascondi 4 commenti meno recenti
Stephen23 il 26 Apr 2020
Modificato: Stephen23 il 26 Apr 2020
@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 il 23 Mag 2020
Modificato: sourab sarkar il 23 Mag 2020
function out=picker(cdn,in1,in2)
if(cdn ==1)
out=in1;
else
out=in2;
end
---------------------
##### 0 CommentiMostra -1 commenti meno recentiNascondi -1 commenti meno recenti

sourab sarkar il 23 Mag 2020
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.
##### 0 CommentiMostra -1 commenti meno recentiNascondi -1 commenti meno recenti

Roweida Bawab il 23 Mag 2020
This is how I solved it
function out = picker (condition, in1, in2)
if condition == true
out = in1;
else out = in2;
return
end
##### 2 CommentiMostra 1 commento meno recenteNascondi 1 commento meno recente
Roweida Bawab il 23 Mag 2020
Noted. Thank you :)

Anurag Verma il 30 Mag 2020
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 CommentoMostra NessunoNascondi Nessuno
Stephen23 il 4 Giu 2020
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 il 4 Giu 2020
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
##### 0 CommentiMostra -1 commenti meno recentiNascondi -1 commenti meno recenti

ROHAN SUTRADHAR il 6 Giu 2020
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