Как я могу создать большую матрицу в Matlab - PullRequest
0 голосов
/ 16 января 2020

Мне нужно создать матрицу Matlab, это большая матрица, как показано ниже:

X = zeros(128,2e7); 

при запуске команды выдает ошибку

Из Память. Введите HELP MEMORY для своих вариантов.

Есть ли способ избежать этой ошибки?

Спасибо

Ответы [ 3 ]

3 голосов
/ 16 января 2020

Если это подходит для вашего случая использования, вы можете использовать разреженную матрицу

Также есть массивы высот

1 голос
/ 16 января 2020

Вы используете код

X = zeros(128,2e7); 

Массив такого размера требует 128 * 2e7 * 8 байт памяти. Это около 20ГБ. Учитывая средний P C, у вас, вероятно, нет 20 ГБ оперативной памяти, доступной для MATLAB. Прямой ответ на ваш вопрос: НЕТ, вы не можете использовать больше оперативной памяти, чем имеется в вашем P C.

Возможные стратегии:

  • Вам действительно нужны все элементы? в оперативной памяти одновременно? Может быть, вы можете сохранить Матрицу на диске и обрабатывать ее по частям?
  • Вам нужна двойная точность? Это тип данных по умолчанию в Matlab. Может быть, достаточно одного или целого типа данных. Что вы хотите хранить в каждом элементе матрицы?
1 голос
/ 16 января 2020

Попробуйте это

zeros(128,2e7,'single');  

Он может работать с вами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...