Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建动画gif时,停止Matlab调整曲面大小_Matlab_Animation_Image Processing_Plot_Animated Gif - Fatal编程技术网

创建动画gif时,停止Matlab调整曲面大小

创建动画gif时,停止Matlab调整曲面大小,matlab,animation,image-processing,plot,animated-gif,Matlab,Animation,Image Processing,Plot,Animated Gif,我想使用Matlab2013(Linux 64位)创建一个360度旋转曲面图。我可以使用下面的代码片段创建一个动画gif,但Matlab会在整个动画的某些帧中不断调整曲面的大小(示例请参见[1],第56-59帧)。知道如何防止Matlab调整绘图面的大小吗? 提前谢谢你的建议 function createVideo( FigureHandler, filename ) grid on set(gca,'ZTickLabel',[]); set(gca,'YTickLabel',[]); set


我想使用Matlab2013(Linux 64位)创建一个360度旋转曲面图。我可以使用下面的代码片段创建一个动画gif,但Matlab会在整个动画的某些帧中不断调整曲面的大小(示例请参见[1],第56-59帧)。知道如何防止Matlab调整绘图面的大小吗?
提前谢谢你的建议

function createVideo( FigureHandler, filename )
grid on
set(gca,'ZTickLabel',[]);
set(gca,'YTickLabel',[]);
set(gca,'XTickLabel',[]);
for n = 1:360
    view(n,66)
    zoom off
    drawnow
    frame = getframe(FigureHandler);
    im = frame2im(frame);
    [imind,cm] = rgb2ind(im,256);
    if n == 1;
        imwrite(imind,cm,filename,'gif', 'Loopcount',inf);
    else
        imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0);
    end
end
end
[1]

该问题是由于轴限制随视图的变化而引起的,可以通过手动设置轴限制或将轴属性
'XLimMode'
'YLimMode'
'ZLimMode'
设置为
'manual'
来防止

但是,其他属性(例如DataAspectRatio、PlotBoxAspectRatio等)会导致图形在旋转时放大和缩小

但是,Matlab提供了
vis3d
轴模式来为您设置所有这些
您只需添加以下内容:

axis('vis3d')

应在设置记号等后放置。。。但是在for循环之外

您是否可以发布视图代码(n,66)或显示大小调整的简化版本?它是否依赖于imwrite,或者您是否也会在屏幕上看到它而不创建动画gif,而只是通过查看matlab图形?
view
随matlab提供(它是graph3d工具箱的一部分)