Boris
Boris

Reputation: 213

how to plot this data?

I have an array of values for theta and phi. How can I easily create a MATLAB plot where theta and phi are spherical coordinates like this:

hf

How to plot the values in MATLAB if I have an array of the theta and phi with radius kept constant?

These are the values of theta:

theta = [ 80.0000   73.2995   65.7601   95.5007  100.4861   97.8834   94.0849     52.5174 74.4710  104.6674   52.7177   97.0538   75.7018   83.2817   97.5423   85.1797 84.2677  126.2296   81.1814   66.1376   91.6953  167.7085   46.5980   87.8220 113.4588  180.0000   80.7624   95.8623  115.0538   76.5773   61.9858  141.0402  109.9872   76.1273   84.4166   75.2734  110.4489   82.2434   96.8303  100.0815 73.2454   82.0755   64.6457   76.3510   87.7863  133.2706   86.1305   76.8670  86.3225   96.8016   49.2653  107.2900  145.9905   59.2158  107.7546  180.0000 93.9687   87.5474  103.1400  180.0000  136.8251  180.0000  106.2629  109.0069 ];

And the values of phi are:

phi = [ -90.0000  -78.5230  -51.6764   84.6854   58.1182  -75.9705   78.0541  -60.0560  88.8935  -84.6539  -44.1415  -86.7643   61.7764  -87.4767  -86.9440  -80.2459  -76.8752   88.9510   64.7297  -51.1245  -83.1606  -88.7280  -32.7110   81.0951  86.8393   -0.0000   52.6243  -88.7833  -75.4600   84.1374   79.8300  -86.7258  -65.8055   80.9829  -89.3172   57.1802  -80.6346   72.5277  -87.4452   74.2778  -86.1069   76.6124  -80.4604   89.2202   85.0649   89.2164  -79.0290   84.9961  -88.2301  -87.5064   50.4016   83.0830   82.4863  -50.8481   87.0335   -0.0000  88.4613   79.7583  -80.6474   -0.0000   80.0771   -0.0000   89.2428  -82.769 ];

The desired plot should be pictorially similar to this:

dim

I tried using plot(phi,theta) and I got this: hg

after plotting as suggested by andras enter image description here

enter image description here

Upvotes: 0

Views: 208

Answers (2)

Narges Nourian
Narges Nourian

Reputation: 46

try this: [X, Y, Z] = sph2cart(theta, phi, R); Which R is the radius of your sphere and here is R = sqrt(sum(P.^2)); Then plot it like: scatter3(X,Y,Z);

Upvotes: 1

ben Heo
ben Heo

Reputation: 141

Can you try this:

[X, Y, Z] = sph2cart(theta, phi, P);
plot3(X, Y, Z)

Then use [Rotate 3D] button to rotate it to better looking.

Upvotes: 2

Related Questions