2012-04-10 9 views

Antwort

0

Use "image"

Bild (x), colormap (HSV) < -, wobei X eine Matrix aus Zell Intensitäten (x, y)

+0

Zur Klarstellung, ich glaube, 'x' muss eine 2D Matrix von Werten zwischen' 0' und '1' sein. Aber 'doc image',' doc colormap' wissen mehr darüber als ich. –

+0

dann rescale Werte auf 0 bis 255 und tun hsv (255) – jdl

+0

Die betreffende Figur getan mit 'Bilderc'-Funktion (automatische Skalierung) und' Jet' Colormap. – yuk

0

Sie müssen dann die Koordinaten jeder Station erhalten Erstellen Sie ein Kreis-Polygon um es (mit einem bestimmten Radius) und konvertieren Sie dann dieses Polygon in ein Raster. Dann summieren Sie diese Raster (Matrizen) übereinander. Für die Geschwindigkeit können Sie anstelle von Polygonen auch festlegen, welche Zellen von einer Station abgedeckt werden, wie z. B. alle Zellen in 5 Zeilen oder die Spalten einer Station den Wert erhalten. Sie können auch einen 2D-Gauß-Filter auf Ihre Matrix anwenden, wobei nur die Zellen, die eine Station enthalten, den Wert 1 haben. Die Bandbreite Ihres Gauß-Kerns ist Ihr Abdeckungsradius (Bereich). http://www.mathworks.ch/help/toolbox/images/ref/fspecial.html

5

Hier ist ein Beispiel, wie Sie ein Diagramm wie dieses erstellen können. Beachten Sie, dass ich Beispieldaten für den Plot erstellt von zufällig die Positionen von zellularen Basisstationen zu erzeugen uniformly distributed pseudorandom numbers mit:

%# 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 

Und hier ist die resultierende Handlung:

enter image description here

Beachten Sie auch, dass die Daten in der Bildmatrix cellCoverage enthält kein Rauschen und hat keine Glättung angewendet, weshalb die Kanten schärfer als das Originalbild in der Post erscheinen (die ich vermute, dass echte Daten erzeugt wird, nicht "gefälschte" Beispieldaten wie ich h verwendet ehe).

Verwandte Themen