La asignación de matriz dispersa se vuelve muy lenta en Matlab

Estoy llenando una matriz dispersa P (230k, 290k) con valores provenientes de un archivo de texto que leí línea por línea, aquí está el código (simplificado)

while ...
            C = textscan(text_line,'%d','delimiter',',','EmptyValue', 0);
            line_number = line_number+1;
            P(line_number,:)=C{1};
end

el problema que tengo es que al principio

P(line_number,:)=C{1};

La declaración es rápida, después de unos pocos miles de líneas se vuelven extremadamente lentas, supongo que porque Matlab necesita encontrar el espacio de memoria para asignar cada vez. ¿Hay alguna manera de preasignar memoria con matrices dispersas? No lo creo, pero tal vez me estoy perdiendo algo. ¿Algún otro consejo que pueda acelerar la operación (por ejemplo, tener mucha RAM libre puede marcar la diferencia?)

Respuestas a la pregunta(2)

Su respuesta a la pregunta