Azzera filtri
Azzera filtri

After using triu, how do I exclude the 0s in the vector?

6 visualizzazioni (ultimi 30 giorni)
Hi all, So my matrix, lets call it A is 76x76, and I only want the top triangular corner(without the main diagonal line). I managed to get everything right, but the numbers that I don't want (lower triangle) still appears as 0, how do I remove it? My code is as below.
function M = vector2(A)
B = triu(A,1)
M = reshape(B, [] ,1)
This makes my matrix into a vector which is what I want, but there are still 0s in place of the numbers that I don't want, when I want it to just disappear completely. Please help.
Thank you very much!

Risposta accettata

James Tursa
James Tursa il 23 Ago 2016
M = A(triu(true(size(A)),1));
  3 Commenti
James Tursa
James Tursa il 23 Ago 2016
Yep ... I didn't notice this was a repeat Question.
Walter Roberson
Walter Roberson il 23 Ago 2016
And I had already given that solution a couple of days ago when I listed off three ways of extracting the outputs from the pairwise averages for a previous question.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Matrices and Arrays 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