Массив чисел с плавающей точкой двойной точности 1000 x 2 занимает всего 16000 байтов:
>> myMatrix = rand(1000, 2);
>> whos('myMatrix')
Name Size Bytes Class Attributes
myMatrix 1000x2 16000 double
, поэтому вы сможете без проблем разместить десятки тысяч в памяти.Если ваши результаты симуляции всегда будут иметь одинаковый размер, вы можете сохранить их в трехмерном массиве:
% preallocate the array to prevent memory reallocation, which is slow
resultArray = zeros(numofruns, 1000, 2);
for i = 1:numofruns
% run the simulation here, assume it returns 1000 x 2 matrix simout
resultArray(i,:,:) = simout;
end
Если число строк может варьироваться от одного цикла к другому, вы можете использовать ячейкумассив:
resultCellArray = cell(numofruns);
for i = 1:numofruns
% run simulation here
resultCellArray{i} = simout;
end
Если вы действительно генерируете слишком много данных, чтобы поместиться в память одновременно, но хотите сохранить их в одном файле и иметь доступ к произвольным подмножествам их для анализа, вы, вероятно, захотитеРассмотрим методики работы с большими MAT-файлами .Это будет намного, намного медленнее, чем обработка данных в памяти.
В качестве альтернативы, вы можете попробовать использовать Simulation Data Inspector , хотя я не знаю, может ли это обрабатывать данные, слишком большие дляпамять.