How can I plot 3-same-sized matrices in a polar plot ?

1 view (last 30 days)
Dear Matlab Community,
I would like to plot Signal strength values of a satellite, according to its elevation (radius) and its azimuth (angle) (from an earth station point of view) in a polar plot. My inputs are:
  • a 91x361 matrix with elevation values,
elevation = pi/180*(0:90);
elevation_grid = elevation'*ones(1,length(azimuth));
  • a 91x361 matrix with azimuth values,
azimuth = pi/180*(0:360);
azimuth_grid = ones(length(elevation),1)*azimuth;
- a 91x361 matrix with signal strength values (SNR_grid), of course this matrix contains NaN value because satellite will never have some couple of (elevation, azimuth) as coordinates.
My point is to make correspondences between the 3 matrices. If I look at element (n,p) in elevation_grid and in azimuth_grid, it gives me the corresponding signal strength in SNR_grid.
For now, I used the "surface" function. It gives me such result :
But I would like to have that in a polar plot. 0° must be North (on top of the graph) and the angle should be measured in geographic direction (not trigonometric), that means clockwise.
I thank you very much for your help.
Roxane

Answers (1)

Suhan
Suhan on 24 May 2017
Edited: Suhan on 24 May 2017
Have you considered 'surf' and 'surfc' commands?
Convert the data you have (R, Phi, St) (where R-radius, Phi - Azimuthal angle, St-Signal Strength) into cartesian data (X,Y,St). Then use 'surfc' or 'surf' functions.
You might also want to consider other contour plots in MATLAB. https://in.mathworks.com/help/matlab/ref/surfc.html?searchHighlight=surfc&s_tid=doc_srchtitle https://in.mathworks.com/help/matlab/visualize/representing-a-matrix-as-a-surface.html

Categories

Find more on Geographic Plots in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!