如何在MATLAB中创建这样的图?

时间:2012-04-10 11:14:06

标签: matlab plot matlab-figure

我试图在MATLAB中绘制不同蜂窝基站的范围,如下所示:

sample plot

但我无法弄明白该怎么做。

3 个答案:

答案 0 :(得分:5)

以下是如何创建这样的情节的示例。请注意,我使用uniformly distributed pseudorandom numbers

随机生成蜂窝基站的位置,为绘图创建了样本数据
%# Initializations:
minRange = 0;       %# Lower x and y range
maxRange = 3.5;     %# Upper x and y range
resolution = 1000;  %# The number of data points on the x and y axes
cellRange = linspace(minRange, maxRange, resolution);
[x, y] = meshgrid(cellRange);   %# Create grids of x and y coordinates
cellCoverage = zeros(size(x));  %# Initialize the image matrix to zero

%# Create the sample image data:
numBases = 200;
cellRadius = 0.75;
for iBase = 1:numBases
    point = rand(1,2).*(maxRange - minRange) + minRange;
    index = ((x - point(1)).^2 + (y - point(2)).^2) <= cellRadius^2;
    cellCoverage(index) = cellCoverage(index) + 1;
end

%# Create the plot:
imagesc(cellRange, cellRange, cellCoverage);  %# Scaled plot of image data
axis equal;  %# Make tick marks on each axis equal
set(gca, 'XLim', [minRange maxRange], ...  %# Set the x axis limit
         'YLim', [minRange maxRange], ...  %# Set the y axis limit
         'YDir', 'normal');                %# Flip the y axis direction
xlabel('X-distance (km)');  %# Add an x axis label
ylabel('Y-distance (km)');  %# Add a y axis label
colormap(jet);              %# Set the colormap
colorbar;                   %# Display the color bar

这是由此产生的情节:

enter image description here

另请注意,图像矩阵cellCoverage中的数据不包含噪声并且没有应用平滑,这就是为什么边缘比帖子中的原始图像更清晰(我猜是从< em>真正的数据,而不是我在这里使用的“虚假”样本数据。

答案 1 :(得分:0)

使用“image”

image(x),colormap(hsv)&lt; - 其中x是细胞强度矩阵(x,y)

答案 2 :(得分:0)

您需要获取每个工作站的坐标,然后围绕它创建一个圆形多边形(具有给定的半径),然后将此多边形转换为网格。然后,您将这些网格(矩阵)相互叠加。对于速度,您可以定义哪些单元将被一个工作站覆盖,而不是使用多边形,就像5行中的所有单元或工作站的列都获得该值一样。 您还可以将2D高斯滤波器应用于矩阵,其中只有包含工作站的单元格的值为1.高斯核心的带宽将是您的覆盖半径(范围)。 http://www.mathworks.ch/help/toolbox/images/ref/fspecial.html