如何在 MATLAB 中索引 3-D 矩阵的对角线?
我有一个 M×M×N 矩阵,它是 N 个 M×M 矩阵的串联。我想通过取每个 M×M 子矩阵的对角线并将它们连接在一起,将该矩阵简化为 M×N 矩阵。我怎样才能以简单的矢量化方式做到这一点?
I have an M-by-M-by-N matrix, which is a concatenation of N M-by-M matrices. I want to reduce this matrix to an M-by-N matrix by taking the diagonals of each M-by-M submatrix and concatenating them together. How can I do this in a simple vectorized way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过获取对角线的线性索引并使用它来形成一个新矩阵来完成
此操作。在上面,我使用
~
来忽略函数的输出。但是,这仅在您使用 MATLAB R2009b 及更高版本时才有效。如果您的版本比该版本旧,请改用虚拟变量。You can do it by getting the linear indices of the diagonals and using it to form a new matrix
In the above, I've used
~
to disregard that output from the function. However, this works only if you're using MATLAB R2009b and above. If your version is older than that, use a dummy variable instead.