Strange behaviour computing l1 norm of rows of a matrix

1 visualizzazione (ultimi 30 giorni)
I have a (1102,8232)-matrix B (from Data that I don't have control over).
The query
B(1102,:)
yields
ans = All zero sparse: 1×8232
However, when I compute
beta = sum(abs(B),2);
or equivalently
beta = vecnorm(B,1,2)
I get
beta(1102)
ans = (1,1) 55
On the other hand, the command
norm(B(1102,:),1)
ans = 0
works as expected.
I'm really confused what's happening here. Any help is appreciated.

Risposta accettata

Bruno Luong
Bruno Luong il 13 Ago 2020
Modificato: Bruno Luong il 13 Ago 2020
Who build this sparse matrix B?
If it's build from external source it can be not-valid. I believe there is a tool on FileExchange to validate the sparse matrix, the name escapes me now.
EDIT: this command crahes my MATLAB
B = B+0
indicating this matrix has serious building flaw.
  6 Commenti
Bruno Luong
Bruno Luong il 13 Ago 2020
Yeah but be aware the fixed matrix might not be correct. You better try to fix at gurobi_read or python, whichever step that is responsible for the error.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by