MATLAB Why am I not getting an array when using inverse tangent on an array in MATLAB?

AI Thread Summary
The discussion revolves around a user experiencing issues with obtaining an array output from the inverse tangent function in MATLAB. Initially, the user attempted to use "arctan," which is not a built-in MATLAB function, leading to confusion and a single number output instead of an array. Participants clarified that the correct functions to use are "atan()" and "atan2(x,y)," both of which can handle array inputs and return arrays of the same dimensions. The user later confirmed that after correcting the function to "atan," they successfully received the expected array output, indicating that the initial problem stemmed from using the incorrect function name. The conversation also touched on how to verify if a function is built-in using the "which" command.
Link-
Messages
99
Reaction score
0
Hi guys,

I am having a problem here with a MATLAB m.file, I am trying to take the inverse tangent of an array and expect from this function to get another array, but for some reason I don't get an array just a single number.

Any MATLAB guru that could help me with this problem?

Thanks
--link
 
Physics news on Phys.org
arctan isn't an intrinsic matrix function. You have to calculate each element sparately.
 
Dr Transport said:
arctan isn't an intrinsic matrix function. You have to calculate each element sparately.

Thanks for the help
 
arctan is not a built-in Matlab function, but atan(x) and atan2(x,y) both are, and they both take arrays for input arguments.
 
belliott4488 said:
arctan is not a built-in Matlab function, but atan(x) and atan2(x,y) both are, and they both take arrays for input arguments.

Really? Because my input was an array an I just got a single number, not an array. There's something that I could do to get an array?
 
Link- said:
Really? Because my input was an array an I just got a single number, not an array. There's something that I could do to get an array?
Your input for which function? As I said, arctan is not built-in, so I can't guess how it would behave; that would depend on how it was written.

Here are simple examples of the other two:

Code:
>> theta = atan([.1 .2 .3 .4])

theta =

    0.0997    0.1974    0.2915    0.3805

>> theta = atan2([1 2 3 4],[10 10 10 10])

theta =

    0.0997    0.1974    0.2915    0.3805
 
I use atan(), common I would notice if is not a built in function.

My array was stored on a variable then I tried to take the atan of the variable an expected an array.
 
Link- said:
I use atan(), common I would notice if is not a built in function.
I don't understand this sentence.

Are you asking how to tell if a function is built-in? Use "which", as in

>> which atan

which will return the location of the function's m-file, or it might simply say that the function is a pre-compiled function, i.e. it has no m-file.

Link- said:
My array was stored on a variable then I tried to take the atan of the variable an expected an array.
You should get back an array of the same dimensions, as in this example:

Code:
>> M = [.1 .2 .3
        .4 .5 .6 ];
>> atan(M)

ans =

    0.0997    0.1974    0.2915
    0.3805    0.4636    0.5404
 
I ran again the m-file and got the array I was looking for, maybe one of my inputs were wrong.

By that sentence that I wrote, sorry... for some reason my English is getting worse. What I tried to say is that I used atan() and not arctan, that will note by the "? Undefined command/function 'arctan'" message that is not a MATLAB function.

Thanks for the help belliott4488

-Link
 
Back
Top