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

2 次查看(过去 30 天)
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

回答(1 个)

Suhan
Suhan 2017-5-24
编辑:Suhan 2017-5-24
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

类别

Help CenterFile Exchange 中查找有关 Geographic Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by