我需要一个代码来省略矩阵的对角线元素 例如如果
A =
[1 2 3;
1 2 3;
1 2 3];
输出来了:
[2 3;
1 3;
1 2];
我怎样才能简单地做到这一点(我知道一个很长的但我需要它简单)
最佳答案
这是一种解决方案:
Alower = tril(A, -1);
Aupper = triu(A, 1);
result = Alower(:, 1:end-1) + Aupper(:, 2:end)
演示:
> A = [1 2 3; 1 2 3; 1 2 3]
A =
1 2 3
1 2 3
1 2 3
> tril(A, -1)(1:end, 1:end-1) + triu(A, 1)(1:end, 2:end)
ans =
2 3
1 3
1 2
关于matlab - 如何在 MATLAB 中删除矩阵的对角线元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11709880/