Thanks for all the hints, everyone. For now, I had to put the matrix into MATLAB to do the matrix operations; MATLAB is quite straight foward to code and I'm on an extremely tight deadline to provide some of the many answers in this project.
However, I still need to streamline it all into SAS, since all base matrices will be estimated from a dataset containing ~1.7 million rows and growing. The project will require calculating anywhere between 40-50 different matrices from the SAS dataset, then doing all the operations.
I haven't had the time to figure out how to get proc iml to READ a matrix from a dataset. If anyone has the code for this and doesn't mind sharing it, I'd really appreciate the time saving tip, I'm on a tight schedule here.
In case someone in the community is interested in Markov chains: the 10 by 10 matrices are basic Markov transition probability matrices, all estimated from the SAS dataset with a bunch of different criteria. Item 5 in the answer is a misunderstanding: the final goal really are scalars, each one the expected future values of a certain index. Each scalar is the nth row of the matrix (1 by 10 vector of probabilities) multiplied by the 10 by 1 column vector of the 10 possible index values. I think picking the rows with a macro will be straightfoward to get once the matrix is read as matrix: use a vector with zeroes everywhere and a 1 in the position of the row I want to pick.
... View more