Retrieving two outputs from a function requires two steps.
- Define the function to return two outputs
- Call the function with two outputs
You've performed the first of those steps. Your function definition states that it returns two outputs, the contents of the variables x and y created inside your function.
function [x,y] = subfuntest(a,b)
Now you (or really the user of your code, which could be you or could be someone with whom you share the code) need to perform the second step: call the function with two outputs.
[abra, cadabra] = subfuntest(1, 2)
Calling it with one output would only get the first input (unless the function author took specific steps to make it behave otherwise. But that's a little more of an advanced maneuver. You didn't take those steps in your code.)
hocuspocus = subfuntest(1, 2)
Calling it with zero outputs is like calling it with one output that is named ans.