Проблема, с которой я столкнулся, может быть воспроизведена с помощью приведенного ниже кода.
gcp;
C={};
for i=1:1000
C = [C,{tall(ones(1000,1,1000,2))}];
pause(0.05)
end
Я ожидаю, что высокие массивы вводятся в память только для оценки выражений, а затем тольконесколько строк за раз, вышеописанное не вызовет немедленных проблем с памятью.Тем не менее, кажется, что он заполняет мой оперативный памяти точно так же, как при вызове
gcp;
C={};
for i=1:1000
C = [C,{ones(1000,1,1000,2)}];
pause(0.05)
end
То есть использование высоких массивов, похоже, не влияет на использование памяти вообще.
Если я хочу хранить большие массивы данных, создаваемых MatLab, вне памяти, как мне это сделать?Использование больших массивов, похоже, не работает.
Примечание. Я использую MatLab 2017a, которая не поддерживает вертикальную конкатенацию высоких массивов.Поэтому я использую структуру
{rows1,rows2,...,rowsn}
для представления блоков строк одного и того же массива.Это не может быть оптимальным.