what is an example of a subroutine module with 2 parameters, a constant and a square matrix.
that adds the constant value to every element of the diagonal of the matrix, and passes the result
back in a new parameter? I'm having a hard time understanding this stuff so lots of comments would
be unbelievably helpful.
proc iml;
start AddToDiag( result, A, B);
/* add B to diagonal of a square matrix A */
result = A + diag( j(nrow(A), 1, B) );
finish;
/* test it out */
m = {1 1 1,
2 2 2,
3 3 3 };
lambda = 3;
run AddToDiag( MPlusLambda, m, lambda);
print M lambda MPlusLambda;
quit;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Register now!
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.