matlab - 从矩阵中提取 block 对角线

标签 matlab matrix

我有一个由 nxn 矩阵组成的 njxnj 矩阵。我想提取 nxn 矩阵的对角 j block 。即我想提取对角线(对于 n = 2,j = 4):

enter image description here

最有效的方法是什么?

最佳答案

要为元素建立索引,您可以使用 blkdiag 创建相应的掩码。

%your parameters
n=2
j=4
%some example matrix
M=magic(n*j);
%create the input for blkdiag, j matrices of size n
h=repmat({true(n)},j,1)
%use blkdiag to select the elements
M(logical(blkdiag(h{:})))

关于matlab - 从矩阵中提取 block 对角线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34146060/

相关文章:

mysql - 这个矩阵乘法在 SQL 中是如何工作的?

Matlab:求微分方程给出的 y 值的根

image - 如何在 matlab 中对图像进行去模糊处理?

matlab - 如何找到平面和3D矩阵之间的相交平面

c++ - Eigen 如何在零和一之间重新分配矩阵值

python - 与 ndarray 的矩阵乘法

python - 如何从 Python 中的相关矩阵中识别重要项目(无内循环)

matlab - 逐行平铺矩阵

matlab - 调用堆栈返回后向量中的变量变回

r - 如何检查矩阵是否包含特定行?