从3D矩阵的“切割”创建2D矩阵

时间:2016-06-08 16:30:22

标签: matlab multidimensional-array

我有一个3D矩阵ch4_global 180 by 360 by 452(经度经纬度)。我想从3D矩阵的切割创建一个2D矩阵。切割矩阵是尺寸为451乘以1的2D矩阵(id)。我需要每次使用ch4_global切割id(180x360)。

id=find(Latitude<=-10.5 & Latitude>=-20.5 & Longitude<=-35.5 & Longitude>=-75.5);

所以,我想:

co(:,time)=ch4_global(id,time)

2 个答案:

答案 0 :(得分:2)

Trigger将为您解决问题。

A = rand(180,360,452);
B = squeeze(A(:,:,1));

答案 1 :(得分:0)

根据你问题中给出的例子(和数组大小)判断,我假设你正在使用[elevation <=> θ <=> latitude, azimuth <=> φ <=> longitude]球面坐标惯例:

Spherical coordinates in physics; From Wikipedia

...并且数组中的位置对应于以度为单位的适当角度。出于这个原因,我认为你可以通过简单的子数组索引来获得你想要的东西:

cut_ch4_global = ch4_global( (-20:-11)+90, (-75:-35)+180, :);

请注意,结果仍然是3D数组,但现在它只包含您感兴趣的lat / lng(如果我的假设是正确的)。

我提前为任何“off-by-1”错误道歉。