在matlab中是否有一个函数可以获得矩阵的斜对角?
斜对角是在matlab中是否有一个函数可以获得矩阵的斜对角?,matlab,matrix,diagonal,Matlab,Matrix,Diagonal,斜对角是[a_12,a_21]。现在,我翻转矩阵并使用diag.作为fliplr和diag的替代方法,您可以像这样直接索引到矩阵中: A=[a_11, a_12; a_21, a_22] 这不局限于3x3矩阵吗?一般情况?否。这不限于3x3矩阵。它是任意大小方阵的通解。只有一个例子是3x3。@Jonas:看起来你在计算反对角线,这不是OP要求的。在一些文献中,斜对角与您的反对角相同,但OP的示例表明这里的情况并非如此。Thanks@eat:我正在计算“主斜对角”(根据Wolfram网站)。对于
[a_12,a_21]
。现在,我翻转矩阵并使用diag.作为fliplr
和diag
的替代方法,您可以像这样直接索引到矩阵中:
A=[a_11, a_12; a_21, a_22]
这不局限于3x3矩阵吗?一般情况?否。这不限于3x3矩阵。它是任意大小方阵的通解。只有一个例子是3x3。@Jonas:看起来你在计算
反对角线
,这不是OP要求的。在一些文献中,斜对角
与您的反对角
相同,但OP的示例表明这里的情况并非如此。Thanks@eat:我正在计算“主斜对角”(根据Wolfram网站)。对于4乘4的阵列,这将是[a41,a32,a23,a14]。@Jonas:但是[456]不是魔法的主斜对角吗(3)?谢谢
A = magic(3);
s = length(A);
idx = s:(s-1):(s*(s-1)+1);
%# for anti-diagonal, use the following
%#idx = (s*(s-1)+1):(-s+1):s;
skewDiag = A(idx)
skewDiag =
4 5 6