热线电话:13121318867

登录
2019-02-16 阅读量: 755
4D矩阵的数据创建/转换新的4D矩阵

我有一个像这样定义的矩阵:height(:,:,:,:)。四个维度是“纬度,经度,海拔和时间”。具体在这里,我试图让这个4D变量能够以米为单位显示实际高度,而不是当前表达形式,即被调用大气层的总高度(包括它下面的高度)。对于每个纬度,经度和时间组合,高度不同,没有标准的“层高”。

当调用高度变量时,它会显示指定网格单元格的“顶部”高度,但它们是相加的。例如,如果网格单元1的高度为40米,网格单元2的高度为42米,则调用网格单元2将为您提供82米的值。我想改变它,以便存储的值是

我试图创建一个for循环,对于每个点,调用图层高度并在其之前减去图层的高度,以仅给出所调用图层的高度。像这样:

h=0;

for index = 2:27

for space = 1:26

h = h + flheight(:,:,index,:) - flheight(:,:,space,:)

end

end

目前我收到的错误值“4.2961e + 05”虽然......但它可能对每个人都很明显,但我自己为什么会这样。

当我拨打电话时,我期待的价值大约是“32”米。

此外,看起来我的矩阵只有一个高度尺寸(尺寸3)而不是预期的27(这可能与我的输出的大尺寸有关)。

在这之后,我计划手动将顶层的高度添加到以某种方式创建的矩阵,但这是另一个步骤。现在我正试图获得2-> 27层的个别高度。

编辑

所以:这是来自flheight的示例数据snippit的格式。实际上,每个维度的长度都是浮动的(336,264,27,25),但是对于这个例子,我将制作一个浓缩版本。

flheight(1,1,:,1)大致是:

[ 40

82

124

169]

基本上,每个纬度,经度和时间组合有27个高度。而不是显示总高度,我希望它取代高度差异(通过评论说明!)。我正在尝试使变量“h”转换为以下内容:

[ 40

42

42

45 ]

此外,对于每个高度和时间组合,存在336x264矩阵。

解决办法:

我的结束代码是:

for index = 2:27

h(:,:,index,:) = flheight(:,:,index,:) - flheight(:,:,index-1,:);

end

我的问题是我只是说:

h= ...

但我需要说:

h(:,:,index,:) = ...

所以我实际上是在高度维度内改变指数!

0.0000
4
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子