【发布时间】:2011-08-01 17:13:18
【问题描述】:
我有一个 M×M×N 矩阵,它是 N 个 M×M 矩阵的串联。我想通过获取每个 M×M 子矩阵的对角线并将它们连接在一起来将此矩阵简化为 M×N 矩阵。如何以简单的矢量化方式做到这一点?
【问题讨论】:
-
嗯,我以为我以前回答过类似的问题,但我花了一些时间才找到它:changing diagonals to 1 in a 4 dimensional matrix in matlab。尽管存在细微差别(赋值与索引,3-D 与 4-D),但答案足够笼统,可能会被认为是重复的问题。也许对标题和标签进行改进是为了让这些更容易找到(我发现自己最近经常这么说)。
-
很多问题都是根据提问者的需求来描述的(例如,我怎样才能从 blah blah 中计算出浓度),但本质上是矩阵操作问题。我建议在询问者满意后稍后清理它们,使其更通用(即剥离特定需求并将其修剪成裸露的骨头)。事实上,这将有助于人们更轻松地寻找答案,并有希望减少受骗,因为在大多数情况下,混淆是由于问题的措辞方式造成的。
-
@R. M.:我已经进行了一些编辑,使标题和标签更清晰,希望在搜索此类矩阵操作问题时能更好地显示出来。
-
@R. M., gnovice:从提问者的角度来看,尤其是。像我这样对 Matlab 和线性代数不熟悉的人,如何识别问题中隐藏的主题?换句话说,我怎样才能识别出可以使用哪些基本矩阵操作操作来实现我的目标?非常感谢
-
如果您阅读了该问题的第一个版本,您会发现其要点是“如何选择 3D
MxNxN矩阵的对角线”,这样会更准确标题而不是“如何减少尺寸”,这也可能意味着从MxN减少到一些MxK或LxK,因此是模棱两可的。至于要使用什么矩阵操作,这来自实践,SO 是提出此类问题的绝佳场所。我和 gnovice 讨论的是 re:编辑问题,让新手更容易搜索和找到答案。
标签: matlab indexing multidimensional-array matrix diagonal