|
|
Output from imlmat1.sas |
Source
0 Graphs |
|---|
NOTE: Capture of log output started.
NOTE: %INCLUDE (level 1) file n:\psy6140\examples\iml\imlmat1.sas is file
n:\psy6140\examples\iml\imlmat1.sas.
675 +title 'IMLMAT1: Basic matrix definitions'; 676 +options nodate; 677 +proc iml;
IML Ready
678 + reset print log;
679 +
680 + *-- Matrix: a rectanglar array of numbers;
681 + X = {1 2 3, 4 0 6, 9 1 4, 6 2 4};
X 4 rows 3 cols (numeric)
1 2 3
4 0 6
9 1 4
6 2 4
682 + 683 + print (nrow(X)) (ncol(X));
#TEM1001 #TEM1002
4 3
684 + rowvec = { 1 2 3};
ROWVEC 1 row 3 cols (numeric)
1 2 3
685 + colvec = { 1, 4, 6};
COLVEC 3 rows 1 col (numeric)
1
4
6
686 + *-- transpose: interchanges rows and cols; 687 + xt = x`;
XT 3 rows 4 cols (numeric)
1 4 9 6
2 0 1 2
3 6 4 4
688 + xt = t(x);
XT 3 rows 4 cols (numeric)
1 4 9 6
2 0 1 2
3 6 4 4
689 + *-- square matrix: same number of rows and cols;
690 + A = {5 -1 3, -1 4 7, 3 3 -4};
A 3 rows 3 cols (numeric)
5 -1 3
-1 4 7
3 3 -4
691 + *-- main diagonal: entries A[i,i]; 692 + d = vecdiag(A);
D 3 rows 1 col (numeric)
5
4
-4
693 + *-- diagnonal matrix: all zero except for main diagonal;
694 + d = diag({1 4 9});
D 3 rows 3 cols (numeric)
1 0 0
0 4 0
0 0 9
695 + *-- trace: for square matrix, the sum of main diagonal; 696 + t = trace(A);
T 1 row 1 col (numeric)
5
697 + *-- symmetric matrix: square, and equal to its transpose 698 + i.e., A[i,j] = A[j,i]; 699 + sym = ( A = A` );
SYM 3 rows 3 cols (numeric)
1 1 1
1 1 0
1 0 1
700 + sym = all( A = A` );
SYM 1 row 1 col (numeric)
0
701 + *-- any square matrix may be made symmetric by averaging 702 + with its transpose; 703 + B = ( A + A` ) / 2;
B 3 rows 3 cols (numeric)
5 -1 3
-1 4 5
3 5 -4
704 + sym = all( B = B`);
SYM 1 row 1 col (numeric)
1
705 + *-- upper triangular matrix: all below main diag = 0;
706 + upper = {-5 2 7, 0 -2 4, 0 0 3};
UPPER 3 rows 3 cols (numeric)
-5 2 7
0 -2 4
0 0 3
707 + *-- lower triangular matrix: all below main diag = 0; 708 + lower = upper`;
LOWER 3 rows 3 cols (numeric)
-5 0 0
2 -2 0
7 4 3
709 + *-- identity matrix: diagonal matrix with 1s on main diag; 710 + I = I(3);
I 3 rows 3 cols (numeric)
1 0 0
0 1 0
0 0 1
711 + *-- scalar matrix: diagonal matrix with equal diagonal entries;
712 + S = diag({10 10 10});
S 3 rows 3 cols (numeric)
10 0 0
0 10 0
0 0 10
713 + *-- unit matrix: all elements = 1; 714 + J = J(2,5);
J 2 rows 5 cols (numeric)
1 1 1 1 1
1 1 1 1 1
715 + J = J(3,1);
J 3 rows 1 col (numeric)
1
1
1
716 + *-- zero matrix: all elements = 0; 717 + Z = J(2,5,0);
Z 2 rows 5 cols (numeric)
0 0 0 0 0
0 0 0 0 0
718 +quit;
Exiting IML.
NOTE: The PROCEDURE IML used 0.22 seconds.
719 +
NOTE: %INCLUDE (level 1) ending.