Ошибка нехватки памяти при использовании цикла for в коде Matlab - PullRequest
0 голосов
/ 02 октября 2018

У меня есть ячейка 1x46 с ячейками разной длины.

Я хочу обнулить каждую ячейку до ячейки максимальной длины, потому что я хочу применить функцию cell2mat и для того, чтобы применить эту ячейку, чтобы она была согласованной.

Но всякий раз, когда я запускаю свой код, он выдает ошибку памяти.

Максимальная длина составляет 6691240, то есть в ячейке максимальной длины 6691240 элементов

Код выглядит следующим образом

for i=1:numel(X1)
  if size(X1{i}) < 6691240
  X1{i}(end,6691240)=0;
  end
end

1 Ответ

0 голосов
/ 02 октября 2018

Насколько я понимаю, каждая ячейка является вектором, и длина каждого такого вектора должна быть 6691240. Таким образом, код необходимо изменить следующим образом:

for i=1:length(X1)
    if length(X1{i}) < 6691240
        X1{i}(6691240)=0;
    end
end
...