提取一个矩阵的元素根据经度和纬度极限

13个视图(30天)
我用下面的代码提取元素的矩阵z(180 * 360)内边界包围xq & yq纬度和经度(限制)。它只返回一个1 * 4数组不期望的输出。你能请帮助改善这一点。(xvertices & yvertices基于纬度(180 * 1)&经度(360 * 1)矩阵)-谢谢
一个= ncread (“研磨- 3 - 2002094 - 2002094 - grac_jplem_ba01_0600_lnd_v04.nc”,“lwe_thickness”);
= ';
z = (:,);
xq = [110160160110];
yq = (-10、-10、-40、-40);
,359.5,359.5 xvertices = [0.5, 0.5];
yvertices = (-89.5, -89.5, 89.5, 89.5);
data = inpolygon (xq yq、xvertices yvertices);
data_z = z(数据)

接受的答案

亚历克斯·哈
亚历克斯·哈 2022年10月24日
编辑:亚历克斯·哈 2022年10月25日
我不清楚xvertices和顶点是什么,但我认为你180数据点对应的采样点(-89.5,-88.5,…,89.5)和同样的(0.5,1.5,…,359.5)。
如果这是真的,那么你就无法正确使用您的查询点。你得到了一个1 x4 inpolygon因为xq和yq都是1的输出x4数组,而不是180年x360。为了解决这个问题,你需要使用xq, yq向量如下:
%设置查询点Z(纬度、经度)
xq = ' (0.5:1:359.5);
yq = ' (-89.5:1:89.5);
%的生成所有组合(xq (k)、yq (k)):
[xq, yq] = meshgrid (xq, yq);
xq = xq (:);
yq = yq (:);
%设置封闭多边形的顶点
xvertices = [110160160110];
yvertices = (-10、-10、-40、-40);
%得到点/多边形:
[,]= inpolygon (xq, yq, xvertices yvertices);
我认为你也交待了查询点与多边形边缘点。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!