我需要检查矩阵是否是单位矩阵。我知道有一个函数可以检查矩阵是否是对角矩阵,即isdiag
。我知道我可以执行以下操作来检查矩阵a
是否是单位矩阵:
isequal(a, eye(size(a, 1)))
是否有像isdiag
这样的函数直接为我做的?
答案 0 :(得分:1)
sum(sum(A - eye(size(A,1)) < epsilon)) == 0
按身份减去并检查是否有任何元素大于epsilon。
答案 1 :(得分:0)
正如其他人所说,你不一定要检查身份矩阵是否完全相等。同样使用eye
可能会为足够大的矩阵占用不必要的内存量。我建议使用diag
来解决这个问题。
isdiag(a) && all(abs(diag(a) - 1) < tolerance)