How can I use FIND to extract the indices of 1 elements in a 0/1 matrix?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Sherwin
el 3 de Oct. de 2016
Comentada: Sherwin
el 3 de Oct. de 2016
I only have some 0/1 matrices and they are generated randomly. How can I define X like this: (please see Matrix image)
The first index of X shows it's in the r-th(r=1) row, the second index shows it's the n-th 1 in that section in that row, and the third index shows it's in the s-th section of that row, and the value of X=K means that it’s the K-th element of that whole row (counting elements from the beginning of that row up to that 1). Here r=1:4 n=1:5 s=1:2
0 comentarios
Respuesta aceptada
michael
el 3 de Oct. de 2016
[row,col] = find(X) returns the row and column subscripts of each nonzero element in array X
PS: matlab indexes are starting from 1, not from 0
3 comentarios
michael
el 3 de Oct. de 2016
"X=K means that it’s the K-th element of that whole row" you already have K in the results.
for the r: you have it as output of find
for the s: if col > some number
for the n: sum(A(row,s:col))-1
Más respuestas (0)
Ver también
Categorías
Más información sobre Resizing and Reshaping 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!