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

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!

 Accepted Answer

M = A(triu(true(size(A)),1));

3 Comments

Yep ... I didn't notice this was a repeat Question.
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.

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!