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

nbr*_*bro 6 matlab matrix linear-algebra

我需要检查矩阵是否是一个单位矩阵.我知道有一个函数可以检查矩阵是否是对角矩阵,即isdiag.我知道我可以做以下事情来检查矩阵a是否是一个单位矩阵:

isequal(a, eye(size(a, 1)))
Run Code Online (Sandbox Code Playgroud)

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

Sue*_*ver 2

正如其他人所说,您不一定要检查单位矩阵是否完全相等。对于足够大的矩阵,使用也eye可能会占用不必要的内存量。我建议使用diag它来解决这个问题。

isdiag(a) && all(abs(diag(a) - 1) < tolerance)
Run Code Online (Sandbox Code Playgroud)