Рассмотрим этот пример:
%# lets create a 10-by-10 matrix, of values in the range [0,9]
M = fspecial('gaussian',10,2.5);
M = (M-min(M(:))) ./ range(M(:));
M = round(M*9);
%# prepare video output
vid = VideoWriter('vid.avi');
vidObj.Quality = 100;
vid.FrameRate = 5;
open(vid);
%# display matrix
h = imagesc(M);
axis square
caxis([0 10])
colormap(jet(10))
colorbar
%# capture frame
writeVideo(vid,getframe);
%# iterate changing matrix
for i=1:50
M = rem(M+1,10); %# circular increment
set(h, 'CData',M) %# update displayed matrix
writeVideo(vid,getframe); %# capture frame
drawnow %# force redisplay
end
%# close and save video output
close(vid);
![enter image description here](https://i.stack.imgur.com/RbcmQ.png)
Вы можете использовать собственную цветовую карту, просто создать матрицу cmap
размером 10 на 3, каждая строка содержит значения RGB и передать ее в вызов colormap(cmap)
Для версий MATLAB старше R2010b вы можете использовать функцию avifile вместо VideoWriter:
%# prepare video output
vid = avifile('vid.avi', 'fps',5, 'quality',100);
%# iterations
for i=1:50
%# ...
%# capture frame
vid = addframe(vid, getframe(gcf));
drawnow
end
%# close and save video output
vid = close(vid);