Start with the upper triangular matrix.
cc = {{a, b, c, d}, {0, y, z, c}, {0, 0, 3, 4}, {0, 0, 0, 9}};
If you want to remove the lower part but keep zeros, if any, that occur in the upper part, you can just extract the appropriate diagonals.
Flatten[Map[Diagonal[cc, #] &, Range[0, Length[cc] - 1]]]
(* Out[60]= {a, y, 3, 9, b, z, 4, c, c, d} *)
If you want to remove all zeros, there is the method shown by @Marco Thiel. An alternative is to convert to an explicit SparseArray
and extract all but the default value, as below.
Most[ArrayRules[SparseArray[cc]][[All, 2]]]
(* Out[66]= {a, b, c, d, y, z, c, 3, 4, 9} *)