Хм. Я скорее человек из MATLAB, чем Octave, но, возможно, я могу помочь (если вы все еще ищете решение)
Это похоже на проблему "я читаю в файле, но мне нужно сделать что-то другое, отличное от инструмента" (в противном случае вы могли бы избежать неприятностей с должно быть довольно быстро).
Если бы в Octave не было альтернативы, чтобы быть быстрее, я бы попробовал использовать Java (для скорости, а не для многопоточности); Вы можете вызвать Java из Октавы . (хотя я не пробовал это в Octave, просто эквивалент MATLAB)
Звонки на str2double выглядят ужасно подозрительно. Возможно, вы сможете векторизовать это, хотя быстрый тест скорости с моей стороны, кажется, подтверждает, что это медленное задание, по крайней мере, в пределах Octave:
octave-3.0.3.exe:15> s=sprintf('1 2\n3 4');
octave-3.0.3.exe:16> m=str2double(s)
m =
1 2
3 4
octave-3.0.3.exe:35> s=randn(5000,5);
octave-3.0.3.exe:36> z=num2str(s);
octave-3.0.3.exe:37> tic; s2=str2double(z); toc
Elapsed time is 18.9837 seconds.