MATLAB 帮助中心
确定矩阵是否为对角矩阵
tf = isdiag(A)
如果 1 是对角矩阵,则 tf = isdiag(A) 返回逻辑值 true (A)。否则,将返回逻辑值 0 (false)。
1
A
true
0
false
示例
全部折叠
创建一个 4×4 单位矩阵。
I = eye(4)
I = 4×4 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
测试矩阵是否为对角矩阵。
isdiag(I)
ans = logical 1
矩阵是对角矩阵,因为所有非零元素都在主对角线上。
创建一个主对角线和第一条对角线上具有非零元素的矩阵。
A = 3*eye(4) + diag([2 2 2],1)
A = 4×4 3 2 0 0 0 3 2 0 0 0 3 2 0 0 0 3
isdiag(A)
ans = logical 0
矩阵不是对角矩阵,因为主对角线上方有非零元素。
根据 A 的主对角线元素创建一个新矩阵 B。
B
B = diag(diag(A));
测试 B 是否为对角矩阵。
isdiag(B)
矩阵是对角矩阵,因为在主对角线上下没有非零元素。
输入数组。如果 A 有两个以上的维度,则 isdiag 返回逻辑值 0 (false)。
isdiag
数据类型: single | double | logical 复数支持: 是
single
double
logical
如果一个矩阵的主对角线上方和下方的所有元素均为零,则该矩阵为对角矩阵。主对角线上的任意数量的元素也可为零。
例如,此 4×4 单位矩阵是对角矩阵。
I4=(1000010000100001)
对角矩阵多为方阵,但并非全部为方阵。
使用 diag 函数可生成 isdiag 对其返回逻辑值 1 (true) 的对角矩阵。
diag
函数 isdiag、istriu 和 istril 是函数 isbanded 的特例,可使用适当定义的上带宽和下带宽执行所有相同测试。例如,isdiag(A) == isbanded(A,0,0)。
istriu
istril
isbanded
isdiag(A) == isbanded(A,0,0)
全部展开
backgroundPool
ThreadPool
isdiag 函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
isdiag 函数完全支持 GPU 数组。要在 GPU 上运行该函数,请将输入数据指定为 gpuArray (Parallel Computing Toolbox)。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
gpuArray
isdiag 函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
在 R2014a 中推出
istril | istriu | tril | triu | diag | isbanded | bandwidth
tril
triu
bandwidth
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处