matlab-多维数组的拼接和提取:向量、矩阵、多维数组 拼接多维数组 matlab中的多维数组在不太严格的意义下与数学中的向量、矩阵和张量一一对应。 向量、矩阵又可以称为一阶张量、二阶张量,因此可以说多维数组对应张量。 用比较容易理解的三阶张量来解释多维数组的维度,维度一就是通常意义上的行,维度二就是列,维度三就是page,如下图。
1,拼接两个向量 行向量和列向量都是一样的情况,就只写行向量了。 结果如下 2,拼接两个矩阵 结果如下 我们发现,向量和矩阵的拼接方是比较相似,可以总结一下,拼接的维度可以不同,但剩余的维度一定要相同 上述向量和矩阵的拼接方式可以用cat函数[1]完成 C = cat(dim,A,B), 当和具有兼容的大小(除运算维度以外的维度长度匹配)时,沿维度将串联到的末尾。 cat函数的第一个参数就是指的多维数组的维度,剩余的两个参数分别待拼接矩阵A,B 3,拼接三阶张量 三阶张量的情况不太一样,这是因为三维数组在matlab中并不能如同向量和矩阵一样显示给出,而是采取了一种迂回的方式[2],创建N维数组总是需要先创N-1维的数组(个人理解,实际中不太常用)。 这样就可以很方便的处理matlab中的数据了 从多维数组中提取向量和张量 从向量中提取向量 太简单了 从矩阵中提取向量和矩阵 太简单了 从多维数组中提取向量和矩阵 还是以容易理解的三阶张量为例,矩阵中固定列按行可取出列向量,固定行按列可取出行向量,那么在三阶张量中,固定列和page,按行可取出row tube,同理,固定行和page,按列可取出 column tube,固定行和列,按page可取出page tube。不同于矩阵中反人类的记号,我们在张量中把这样固定其余维度不变只变动一个维度得到的向量称为tube。 结果如下 我们发现得到的pagetube并不是我们想要的向量,通过size(pagetube)可以知道这是一个三维数组,这与多维数组的生成方式有关,matlab总是认为你在一个维度键一的多维数组,而不是向量。因此需要特殊处理,我们需要把哪些维度为一的维删掉,只需要通过squeeze函数来实现 结合上面提到的size()函数我们又知道了squeeze()函数。还有许多其它有用的函数可以了解一下[3]
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/27376.html