Filter löschen
Filter löschen

How to find the last nonzero entry in all rows of a sparse matrix?

1 Ansicht (letzte 30 Tage)
Dear All,
I need to find out the last nonzero entry in each row of a sparase matrix A. Say A=[1 3 0 0 0 0;0 4 2 3 0 0;5 0 0 1 4 0]. The location of last nonzero entry in all rows of A are [2 4 5].
Thanks a lot in advance.
Benson

Akzeptierte Antwort

Akira Agata
Akira Agata am 8 Apr. 2019
How about the following?
[Solution 1]
A = [1 3 0 0 0 0;0 4 2 3 0 0;5 0 0 1 4 0];
pos = nan(size(A,1),1);
for kk = 1:size(A,1)
pos(kk) = find(A(kk,:),1,'last');
end
[Solution 2]
A = [1 3 0 0 0 0;0 4 2 3 0 0;5 0 0 1 4 0];
C = mat2cell(A,ones(1,size(A,1)));
pos = cellfun(@(x) find(x,1,'last'),C);
  1 Kommentar
Benson Gou
Benson Gou am 8 Apr. 2019
@Akira, Thanks a lot for your valuable suggestions. Your methods work very well. Benson.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Sparse Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by