"if i were to remove the @ sign it would tell me that i am missing input arguments..."
Because in that case you are just calling the function.
If the called function requires inputs but you do not provide any, then clearly that should throw an error.
"... and i am confused what does the @ sign change in terms of input arguments."
Defining a function handle makes zero difference to the number of input arguments that a function accepts, or what inputs you need to provide, ar anything about input arguments at all.
"Why do i need more input arguments when all that changed is that i didn't declare it as a function handle, but tried to open it directly?"
If you do not use @ then you are not "opening" a function, you are calling it.
Just like if I call
it will throw an error, if you call your function (which must have minimum one input argument) without any input argument, then clearly that will throw an error. But that has nothing to do with function handles.