不是把模式都设为自动模式后就万事大吉了,还需设置轴属性,使之与原来同样大小
set(handles.SpeedAxs,'TickDirMode','manual');
set(handles.SpeedAxs,'XLimMode','manual');
set(handles.SpeedAxs,'YLimMode','manual');
set(handles.SpeedAxs,'ZLimMode','manual');
set(handles.SpeedAxs,'XTickMode','manual');
set(handles.SpeedAxs,'YTickMode','manual');
set(handles.SpeedAxs,'ZTickMode','manual');
set(handles.SpeedAxs,'XTickLabelMode','manual');
set(handles.SpeedAxs,'YTickLabelMode','manual');
set(handles.SpeedAxs,'ZTickLabelMode','manual');
set(handles.SpeedAxs,'ALimMode','manual');
set(handles.SpeedAxs,'CLimMode','manual');
set(handles.SpeedAxs,'PlotBoxAspectRatioMode','manual');
set(handles.SpeedAxs,'PlotBoxAspectRatio',[2 1 1]);
tmpDataAspectRatio =
get(handles.SpeedAxs,'DataAspectRatio');
set(handles.SpeedAxs,'DataAspectRatioMode','manual');
set(handles.SpeedAxs,'DataAspectRatio',tmpDataAspectRatio);
tmpCameraPosition = [0.5,0.5,6];
tmpCameraTarget = get(handles.SpeedAxs,'CameraTarget');
tmpCameraTarget = [0.5 0.5 0];
tmpCameraViewAngle = 10;
set(handles.SpeedAxs,'CameraPositionMode','manual','CameraTargetMode','manual','CameraViewAngleMode','manual');
set(handles.SpeedAxs,'CameraPosition',tmpCameraPosition,'CameraTarget',tmpCameraTarget,'CameraViewAngle',tmpCameraViewAngle,'CameraUpVectorMode','manual');
set(handles.SpeedAxs,'DrawMode','fast');
set(handles.SpeedAxs,'Box','on');
Xmin = 0;
Xmax = 3;
Ymin = -2000;
Ymax = 2000;
detX = Xmax-Xmin;
detY = Ymax-Ymin;
tmpDataAspectRatio = [1 2 2];
k=tmpDataAspectRatio(2)/tmpDataAspectRatio(1);
set(handles.SpeedAxs,'XLim',[Xmin Xmax]);
set(handles.SpeedAxs,'YLim',[Ymin Ymax]);
set(handles.SpeedAxs,'CameraTarget',[Xmin+0.5*detX,Ymin+0.5*detY,0]);
set(handles.SpeedAxs,'CameraPosition',[Xmin+0.5*detX,Ymin+0.5*detY,6*detY]);
set(handles.SpeedAxs,'DataAspectRatio',[1 k*detY/detX
k*detY/detX]);
set(handles.SpeedAxs,'XTick',Xmin:(Xmax-Xmin)/5:Xmax);
set(handles.SpeedAxs,'XTickLabel',Xmin:(Xmax-Xmin)/5:Xmax);
set(handles.SpeedAxs,'YTick',Ymin:(Ymax-Ymin)/5:Ymax);
set(handles.SpeedAxs,'YTickLabel',Ymin:(Ymax-Ymin)/5:Ymax);