rect2cube文档
的rect2cube功能重塑和排列一个二维矩阵三维立方体。rect2cube的补充cube2rect。
内容
语法
A3 = rect2cube (A2, gridsize) A3 = rect2cube (A2,面具)
描述
gridsize A3 = rect2cube (A2)重塑了二维矩阵A2成一个三维矩阵的前两个维度空间(例如,纬度x经度或朗x lat)和第三维度的时间或者海洋深度或一些变量执行哪些操作。最后的尺寸A3是指定的gridsize,这可能是一个完整的描述3元素数组A3,或者gridsize可能只是一个2包含前两个维度的元素数组A3。
A3 = rect2cube (A2,面具)重塑的元素A2到真正的网格细胞在一个二维矩阵面具。
为什么这个函数存在吗?
好问题!简短的回答是它允许快速和容易的向量化,意味着没有更多的嵌套循环。更细致的解释有很多的例子可以在这找到教程3 d数据分析。
示例1:简单的情况
这个例子从一个随机的4 x3x2矩阵,这意味着它是一个网格空间维度4 x3和有两个测量——两个“时间”片网格中的每一个点:
%随机4 x3x2矩阵:A3 =兰迪(50 [4 3 2])
A3 (:: 1) = 33 45 15 42 36 14 16 13 1 21 38 19 A3(:,: 2) = 22 47 29日16 44 25 15 20 14 13 24 50
转换A3成一个二维矩阵通过cube2rect:
A2 = cube2rect (A3)
A2 = 33 42 16 21 45 36 13 38 15 14 1 19 22 16 15 13 47 44 20 24日29日25日14 50
以上我们看到的第一行A2包含每个网格单元的值在第一的“时间片”A3,第二行A2对应于第二个时间片。
让A3回原来的3 d安排,使用rect2cube并指定尺寸你想要的A3是:
A3 = rect2cube (A2, [4 3 2])
A3 (:: 1) = 33 45 15 42 36 14 16 13 1 21 38 19 A3(:,: 2) = 22 47 29日16 44 25 15 20 14 13 24 50
这让我们回到我们开始的地方。
注意:您没有指定的第三维度A3当你使用上面的语法。你可以指定第一两个维度rect2cube将算出第三个,是这样的:
A3 = rect2cube (A2, [4 3]);
示例2:屏蔽
如果您正在使用非常大的网格的气候数据,你会发现它更多的计算高效之前删除不感兴趣的区域进行计算。为此,创建一个包含面具真正的值为任何你想保持网格细胞。
在这个例子中,我们还将使用一个面具7真正的值表明网格细胞我们要分析和5假值,我们不想在我们的分析包括:
%创建一个掩码:掩码= true ([4 3]);面具([3 4 6 10 11])= false
掩码= 4×3逻辑数组1 1 1 1 0 0 0 1 0 0 1 1
转换A3成一个二维矩阵通过cube2rect:
A2 = cube2rect (A3,面具)
A2 = 33 42 45 13 38 15 19 22日16 47 20 24日29日50
以上我们看到每一个真正的网格单元的面具被列在A2,行A2对应的时间片A3。
现在,如果我们想要得到的A2回一个3 d网格,使用相同的面具:
A3b = rect2cube (A2,面具)
A3b(:: 1) = 33 45 15 42 13南南南南南38 19 A3b(:,: 2) = 22 47 29日16 20南南南南南24 50
以上,你会注意到A3b不完全匹配A3矩阵我们开始,因为我们扔掉了所有的信息网格中的细胞与0在面具,然后我们必须填补他们南值。这是有损压缩的方法分析,但如果没有这些网格细胞相关分析,然后是真的输了吗?
作者信息
这个函数的一部分气候数据为Matlab工具箱。的功能和支持文档是乍得a·格林写的德州大学奥斯丁分校。