Spherical coordinates to cartesian

I am plotting the antenna pattern in a 3D plot where two axis are representing the theta and phi coordinates. Now I would like to change the plot in order to be able to have real 3D plot in the xyz coordiantes system,
I tried to use the sph2cart function, but I am getting weird results.
Can someone help me please?
surf(phi0rad*180/pi,theta0rad*180/pi,(abs(rho.')))
colorbar
xlabel('\phi')
ylabel('\theta')
shading interp
%%
[az, el]=meshgrid(phi0rad*180/pi, theta0rad*180/pi);
[x,y,z]=sph2cart(az,el,rho_2.');
surf(x,y,z)
I attach also a picture of what I am trying to obtain.
Thanks.

Answers (1)

Steven Lord
Steven Lord on 28 Mar 2020
From the documentation "azimuth is the counterclockwise angle in the x-y plane measured in radians from the positive x-axis." and "elevation is the elevation angle in radians from the x-y plane."
Are your angles in radians or degrees?

2 Comments

Yes I was trying to follow the matlab coordinate system. The angles are in radians
From the fact that the names of the variables you're multiplying by 180/pi in your meshgrid calls imply that those variables are in radians (meaning you're gridding degree data) I don't think you calling sph2cart with angles in radians. You're trying to convert the gridded degree data.

Sign in to comment.

Asked:

on 28 Mar 2020

Commented:

on 28 Mar 2020

Community Treasure Hunt

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

Start Hunting!