我有一个这样定义的矩阵:height(:,:,:,:)。四个维度是“纬度,经度,海拔和时间”。特别是在这里,我试图使此4D变量能够显示以米为单位的实际高度,而不是当前的表达式形式,即被调用的大气层(包括其下面的层)的总高度。对于每种纬度,经度和时间组合,其高度都不同,因此没有标准的“层高”。
调用height变量时,它显示指定的网格单元的“顶部”高度,但它们是可加的。例如,如果网格单元1的高度为40m,而网格单元2的高度为42米,则调用网格单元2的值将为82m。我想更改它,使存储的值为
我尝试创建一个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中示例数据片段的格式。实际上,每个维度的长度都是flheight(336,264,27,25),但在这个示例中,我将制作一个精简版本。
flheight(1,1,:,1)大致为:
[ 40
82
124
169]
基本上,每种纬度,经度和时间组合都有27个海拔高度。我不想显示总高度,而是希望将其替换为不同的高度(如通过注释所述!)。 我正在尝试使变量“ h”转换为以下内容:
[ 40
42
42
45 ]
此外,对于每个高度和时间组合,都有一个336x264矩阵。
答案 0 :(得分:0)
所以,我至少解决了它!
我的结束代码是:
for index = 2:27
h(:,:,index,:) = flheight(:,:,index,:) - flheight(:,:,index-1,:);
end
我的问题是我只是在说:
h= ...
但是我需要说:
h(:,:,index,:) = ...
所以我实际上是在海拔范围内更改索引!