I looked for ways to do it with Array.ConvertAll, but was having trouble.
But this should work.
This assumes you don't know the sizes of the array dimentions
object saMatrix = new object[3, 3] {{ 11.0, 12.0, 13.0 },
{ 21.0, 22.0, 23.0 },
{ 31.0, 32.0, 33.0 } };
double[,] dArray = new double[((object[,])saMatrix).GetUpperBound(0) + 1,
((object[,])saMatrix).GetUpperBound(1) + 1];
for (int x = 0; x <= ((object[,])saMatrix).GetUpperBound(0); x++)
{
for (int y = 0; y <= ((object[,])saMatrix).GetUpperBound(1); y++)
{
dArray[x, y] = (double)((object[,])saMatrix)[x, y];
}
}