For your example in which all variables are the same size, I recommend "flattening" the data into row vectors and storing the matrices as rows in a matrix. For your example, it would look like this:
nr = 2; /* number of rows */
nc = 3; /* number of cols */
nMatrices = 2; /* total number of matrices being stored */
class = {
1 0 2 2 3 2, /* first 2x3 matrix */
4 2 3 2 6 2}; /* second 2x3 matrix */
div ={1 2 4 6 8 10};
new = class / div;
/* if you need to print or use as matrices, use SHAPE: */
do i = 1 to nMatrices;
newM = shape(new, nr, nc);
print newM;
end;
Although I don't recommend it, if you insist on using symbols that have numerical suffixes, you can use the VALUE and VALSET functions.
do i = 1 to 2;
cName = "class_" + strip(char(i));
c = value(cName); /* get value of class_i */
new = c / div;
print new;
/* if necessary, use VALSET to create new_i */
end;