存储MATLAB 3d视口

Phi*_*ipp 5 matlab plot

我正在使用MATLAB来显示三维数据.我使用GUI来改变视角,缩放和平移.如何存储此视图,然后将其应用于另一个图形(包含或多或少相同的数据)?view给了我一个矩阵,但我怎么能将它应用到另一个数字?

非常感谢!

Ita*_*atz 5

要在另一个图上使用当前视角,您可以执行以下操作:

% call when the source axes is the current axes
[az, el] = view; 
% call when the target axes is the current axes
view (az, el);
Run Code Online (Sandbox Code Playgroud)

或者,你可以用做同样getset该的view财产.

但是,要应用您一起提到的所有视图属性,使用Matlab的内置"生成m文件"选项会更容易 - 当您拥有3D图形时,请转到file- > Generate m-file和m文件将创建将3D数据作为输入,并应用设置.

另一种选择是自己保存这些相关设置(只需检查生成的m文件):

plot3(sin(t),cos(t),t);
pba = get(gca, 'PlotBoxAspectRatio');
dar = get(gca, 'DataAspectRatio');
cva = get(gca, 'CameraViewAngle');
cuv = get(gca, 'CameraUpVector');
ct = get(gca, 'CameraTarget');
cp = get(gca, 'CameraPosition');
Run Code Online (Sandbox Code Playgroud)

然后将其应用于当前轴(假设目标轴是当前轴):

set(gca, 'PlotBoxAspectRatio',pba);
set(gca, 'DataAspectRatio',dar);
set(gca, 'CameraViewAngle',cva);
set(gca, 'CameraUpVector',cuv);
set(gca, 'CameraTarget',ct);
set(gca, 'CameraPosition',cp);
Run Code Online (Sandbox Code Playgroud)