How can I Write a function that takes as input two numbers, x and y, and outputs √xy if they have the same signs, x y if they have opposite signs, and 0 if either is zero

1 view (last 30 days)
numbers=input('x','s');
if numbers(diff(sign(x(x~=0))))
disp('sqrt(x*y).')
elseif numbers isequal(sign(previous), sign(current))
disp('(x/y).')
elseif numbers~=0
disp('0.')
end
This is the code I tried but I ended up getting an error in the second line. What is going wrong with my code?
  2 Comments
Walter Roberson
Walter Roberson on 9 Mar 2020
Hint: if the product is not positive then the result is the product, and otherwise is the square root of the product. The code becomes quite simple.

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 9 Mar 2020
You need to convert the string you collected from the user into numbers using sscanf(). Try this:
usersInputString = input('Enter x y ', 's')
numbers = sscanf(usersInputString, '%f %f')
x = numbers(1)
y = numbers(2)
if sign(x) == sign(y)
fprintf('sqrt(x*y) = %f\n', sqrt(x*y))
etc.

Tags

Community Treasure Hunt

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

Start Hunting!