检查矩阵是否是Matlab中的单位矩阵

时间:2016-02-28 12:39:52

标签: matlab matrix linear-algebra

我需要检查矩阵是否是单位矩阵。我知道有一个函数可以检查矩阵是否是对角矩阵,即isdiag。我知道我可以执行以下操作来检查矩阵a是否是单位矩阵:

isequal(a, eye(size(a, 1)))

是否有像isdiag这样的函数直接为我做的?

2 个答案:

答案 0 :(得分:1)

sum(sum(A - eye(size(A,1)) < epsilon)) == 0

按身份减去并检查是否有任何元素大于epsilon。

答案 1 :(得分:0)

正如其他人所说,你不一定要检查身份矩阵是否完全相等。同样使用eye可能会为足够大的矩阵占用不必要的内存量。我建议使用diag来解决这个问题。

isdiag(a) && all(abs(diag(a) - 1) < tolerance)