Hola.
No es necesario inicializar los arreglos dinámicos, Delphi lo hace de forma automática al tipo que corresponda: cero, cadena vacía, nulo, falso, etc.
Distinto es el caso cuando deseamos llenar el arreglo con un valor distinto al que Delphi utiliza por defecto, en ese caso:
Código Delphi
[-]
...
type
TDyn2DFloatArray = array of array of Double;
procedure InitDyn(var vv: TDyn2DFloatArray; const Value: Double);
var
c, f : Integer;
begin
for f := Low(vv) to High(vv) do
for c := Low(vv[f]) to High(vv[f]) do
vv[f, c] := Value;
end;
...
var
mt: TDyn2DFloatArray;
begin
SetLength(mt, 3, 3);
InitDyn(mt, 3.14159265);
...
Saludos