To check, you want
A(:,:,1) * A(:,:,2) * A(:,:3) * A(:,:,4) and so on ?
(Or should it be the other order, since the multiplication is not commutative) ?
If so, then this will be tricky without a loop. I am not sure at the moment that it could be done without a loop... possibly by a wretched use of accumarray.
Could it be done using indexing? Hmmm -- if you had the exact matrix size ahead of time, then you could compute the product symbolically, creating a long string of multiplications and additions for each element, and then at run time you could substitute in the actual array values in place at the symbols. I can assure you, though, that such a method would be a lot slower than a simple loop.
If you are trying to avoid a loop because "loops are slow" then in this case it would be a false economy. 2D matrix multiplication of large matrices is implemented just about as quickly as you can get (okay, maybe not quite as quickly as theoretically possible, but the top theoretical speed needs a lot of spare memory!). The loop would add trivial overhead to all of the multiplications and additions that would have to be done.