How can I use FIND to extract the indices of 1 elements in a 0/1 matrix?
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
michael
2016-10-3
[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 个评论
michael
2016-10-3
"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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!