标签: matlab matrix diagonal
一个简单的问题,我有一个稀疏矩阵A和一个索引列表b = [2, 3, 4 ...],我想设置A(2, 2), A(3, 3), A(4, 4)... = 0。我试过A(b,b)= 0,结果是A(2, 3), A(2, 4), A(3, 2), A(3, 4), A(4, 2), A(4, 3)和这个矩阵的一些非对角元素也设置为零,如何处理?
b = [2, 3, 4 ...]
A(2, 2), A(3, 3), A(4, 4)... = 0
A(2, 3), A(2, 4), A(3, 2), A(3, 4), A(4, 2), A(4, 3)
答案 0 :(得分:3)
使用linear indexing:
A(sub2ind(size(A),b,b)) = 0;
这适用于完整或稀疏矩阵。