有时候matlab遇到问题想在群里发言请教一下。

结果群里不让上传视频文件,这个时候,我们就可以考虑把遇到的问题做成gif图片给大佬们看。

1.画图

print(1,'-dbmp','hello')

print函数可以将图片输出,第二个参数为格式,第三个参数为文件名(文件名可以带路径)。

所以我们先写个程序画一个圆形

x = [];
y = [];
r = 5;
for i=1:200
    x(i) = r * cos(i * 2 * pi / 200);
    y(i) = r * sin(i * 2 * pi / 200);
    plot(x,y,"k");
    axis([-10,10,-10,10]);
    axis equal;
    pause(0.02);
    hold on;
end

2.输出图片

然后再在程序同一目录下新建一个image文件夹,用于存放图片。

然后添加我们的代码,将每一帧图片存进这个路径并附上文件名做序号。

x = [];
y = [];
r = 5;
for i=1:200
    x(i) = r * cos(i * 2 * pi / 200);
    y(i) = r * sin(i * 2 * pi / 200);
    plot(x,y,"k");
    axis([-10,10,-10,10]);
    axis equal;
    pause(0.02);
    hold on;
    print(1,'-dbmp',sprintf('image/%dAllen.bmp',i));
end

3.合成gif

读取那200张图片,然后合成为Baizerobot.gif在当前文件夹。

for j=1:200
    %获取当前图片
    A=imread(sprintf('image/%dAllen.bmp',j));
    [I,map]=rgb2ind(A,256);
    %生成gif,并保存
    if(j==1)
        imwrite(I,map,'Baizerobot.gif','DelayTime',0.1,'LoopCount',Inf)
    else
        imwrite(I,map,'Baizerobot.gif','WriteMode','append','DelayTime',0.1)    
    end
end

更多推荐