В своем коде построения я использую цикл for
frame(S) = struct('cdata',[],'colormap',[]); % pre-allocate frames structure
for i = 1 : round(N/S) : N
some plotting code..
axis equal
drawnow;
frame(i) = getframe();
end
, а затем использую VideoWriter:
video = VideoWriter('My_movie.avi', 'Uncompressed AVI');
video.FrameRate = 60;
open(video)
writeVideo(video, frame);
hold off
close(video);
Но я получаю ошибку
Поле 'cdata' в FRAME не должно быть пустым.
Я знаю, в чем проблема, но не знаю, как ее решить.
Значения для i1,5,9,13 ...
, что означает, что кадры 2,3,4,6,7,8,10,11,12 и т. д. будут пустыми.
Я думаю, что мне нужен внутренний цикл, непосредственно перед тем, как я вызываю функцию getframe (), но я не уверен, как это сделать правильно и, возможно, выполнить итерацию по индексу.
В настоящее время я пытался кодировать этот внутренний цикл:
for j = 1:S
frame(j) = getframe();
end
Однако из-за этого внутреннего цикла симуляция теперь выполняется крайне медленно.