Count vector position in a matrix

1 visualización (últimos 30 días)
steve Brian
steve Brian el 9 de Abr. de 2020
Comentada: the cyclist el 10 de Abr. de 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]
A little help, please!

Respuesta aceptada

the cyclist
the cyclist el 9 de Abr. de 2020
Here's one way:
tmp = cumsum(sum(A~=0,2))
rowptr = [1; tmp(1:end-1)+1];
  2 comentarios
steve Brian
steve Brian el 10 de Abr. de 2020
Editada: steve Brian el 10 de Abr. de 2020
This didn't work
edit: I solved. Thanks bro!!
the cyclist
the cyclist el 10 de Abr. de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by