If you are sure the upper (or lower) triangle is all missing then just use the MIN or MAX operator with a transposed matrix to replicate the values to both triangles.
data lower_triangle ;
input x1-x4;
cards;
1 . . .
.1 1 . .
.2 .3 1 .
.4 .5 .6 1
;
proc iml;
use lower_triangle;
read all var _num_ into a;
b= a <> a` ;
print b;
quit;
Result
b
1 0.1 0.2 0.4
0.1 1 0.3 0.5
0.2 0.3 1 0.6
0.4 0.5 0.6 1
... View more