# Count vector position in a matrix

2 views (last 30 days)
steve Brian on 9 Apr 2020
Commented: the cyclist on 10 Apr 2020
Hi all. I need an algorithm, which takes my first element (! = 0) from an array and checks that element in a vector that already contains the elements of the matrix (! = 0) and begins to count the position it is in. Once it has found the respective element, it adds its position in another vector.
Ex: I have A = [ 2 3 4 0;
8 7 0 0;
2 0 1 3]
VectorA= [ 2 3 4 8 7 2 1 3] (elements != 0)
rowptr = [1 4 6]
Explain:
2 is in position 1 in the vectorA -> rowptr = [ 1
8 is in position 4 in the vectorA -> rowptr = [ 1 4
2 is in position 6 -> rowptr = [1 4 6]

the cyclist on 9 Apr 2020
Here's one way:
tmp = cumsum(sum(A~=0,2))
rowptr = [1; tmp(1:end-1)+1];
##### 2 CommentsShowHide 1 older comment
the cyclist on 10 Apr 2020
Hm. I believe it worked on your example.
I'd be curious to see an example where this algorithm does not work, and your solution.
Maybe you should post your own code as a solution, and accept it, rather than accepting my incorrect solution.

### Categories

Find more on Dialog Boxes in Help Center and File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by