It is very rare that you need to have matrices of different names (as I explain in the article prior to the one you reference). Sometimes people THINK they need to do this because they are trying to wrap SAS/IML statements within a macro loop, which is rarely necessary. Instead, you can use the SAS/IML language itself to perform whatever the macro loop is doing. You didn't post an example, but one common programming technique is to have all of the x vars in an nx10 matrix, where each column is a variable. Then the following statements form a matrix m where each column is what you want: y = j(n,1,0) || x; /* temp: append column of zeros */ m = y[,2:11] - y[,1:10]; free y; Another alternative, if you don't need the whole matrix, is to loop: do i = 1 to 10; if i = 1 then m=x[,i]; else m = x[,i] - x[,i-1]; /* do something with m, which is m_i in your notation */ end;
... View more