Non-zero column value
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Tha saliem
el 8 de Jun. de 2017
Comentada: Tha saliem
el 9 de Jun. de 2017
hi if have a matrix like this:
A=[1,0,0,0;0,1,1,1;0,0,1,0;0,0,1,1]
In this matrix i want to check that apart from diagonal values(1,1 & 2,2 etc.), if there are some other non-zero elements in the row then display that row's index. In A, it should display 2 and 4.
Thanks in advance.
0 comentarios
Respuesta aceptada
Image Analyst
el 8 de Jun. de 2017
Try eye(), any(), and find():
A=[1,0,0,0;0,1,1,1;0,0,1,0;0,0,1,1]
diagonalElements = logical(eye(length(A)))
% Make copy of A so we don't change
% the original A (which could be bad).
Acopy = A;
% Set diagonal elements = 0.
Acopy(diagonalElements) = 0
rowsWith1s = find(any(Acopy, 2))
3 comentarios
Image Analyst
el 8 de Jun. de 2017
You don't need a copy in that case because we don't need to change A, just to check whether the number of 0s is one less than the number of columns.
rowsWith0s = find(sum(A == 0, 2) == size(A, 2)-1)
Más respuestas (0)
Ver también
Categorías
Más información sobre Operating on Diagonal Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!