2017-09-04 150 views
1

x和y是坐标向量 - 经度和纬度。 M是一个矩阵,其中每个坐标都有一个值。我希望imagesc的输出将显示在worldmap的数字上。问题是我不知道该怎么做,因为imagesc没有将它的轴标识为坐标。如何在Matlab中的'worldmap'上显示'imagesc'?

它与here这个问题不同,因为我想显示图像而不是点。

x=[ 28.3473 28.3584 28.3695 28.3807 28.3918 28.4029 ...] 
y=[ -44.7629 -44.7527 -44.7425 -44.7322 -44.7220 -44.7117 ...] 


figure 
worldmap([min(y)-2 min(x)+2],[min(y)-2 max(y)+2]) 
load coastlines 
plotm(coastlat,coastlon) 


imagesc(x, y, M) 

这是从M矩阵(200×200)的一例。它包含网格中每个单元格的权重。这是一个griddata插补功能的输出:

NaN     NaN     NaN 
38.7833096862656  NaN     NaN 
23.3637431502031 55.5086387622325 105.215090860562 
15.0575548356974 33.2628405320320 84.5790859739102 
6.96794335045748 12.7895951273141 59.3208680706436 
0      0    34.9244470279273 
+0

是否'举行“工作? – m7913d

+1

@ m7913d它没有,我试过 –

+0

可能重复[在MATLAB中的地图绘制点](https://stackoverflow.com/questions/19283464/plotting-points-on-a-map-in-matlab ) – anquegi

回答

0

世界地图上的坐标是不经度/纬度。要将图像投影到世界地图上,您应该创建参考矩阵或向量并使用geoshow。参考矢量的形式为[单元格(像素)/度数northern_latitude_limit western_longitude_limit]。您可以使用vec2mtx到LAT-LON转换为常规数据网格,构建引用对象,具有即georefcells,甚至尝试图像匹配手动映射(123方法,全部得到相当费力)

+0

谢谢,但我不知道我明白你的意思。如何手动完成?我认为必须有一个简单的方法。 – Aviad

+0

您能否分享您的图片M? – Gryphon

+0

当然。 M是200x200矩阵。我将编辑该问题。 – Aviad