Matlab 获取3d绘图的最小/最大值

Matlab 获取3d绘图的最小/最大值,matlab,plot,3d,limit,axis,Matlab,Plot,3d,Limit,Axis,我在MATLAB中有一个3d绘图,由许多3d线条组成(通过线条([…],[…],[…],[…],…))。如果我用鼠标和旋转工具(图形窗口中的可点击图标)旋转绘图,MATLAB会一直重新缩放轴。我知道可以使用轴([…])手动调整轴限制,但我不知道三维线或曲面对象的最小/最大值 您可以通过键入surf(peaks)自己测试它。轴在0-50和0-60之间不断变化。我使用的是R2011a 您对如何获取合成三维线/三维曲面网格的三维最小/最大值,以便能够手动设置轴限制有何建议 谢谢我想您还没有发现axis

我在MATLAB中有一个3d绘图,由许多3d线条组成(通过
线条([…],[…],[…],[…],…)
)。如果我用鼠标和旋转工具(图形窗口中的可点击图标)旋转绘图,MATLAB会一直重新缩放轴。我知道可以使用轴([…])手动调整轴限制,但我不知道三维线或曲面对象的最小/最大值

您可以通过键入
surf(peaks)
自己测试它。轴在0-50和0-60之间不断变化。我使用的是R2011a

您对如何获取合成三维线/三维曲面网格的三维最小/最大值,以便能够手动设置轴限制有何建议


谢谢

我想您还没有发现axis命令。发件人:

三维轴

冻结纵横比属性。将打印框纵横比模式和数据纵横比模式属性设置为手动

例如:

> surf(peaks);
> axis vis3d
…不再进行随机轴缩放更改

如果确实需要提取数据的最小/最大值(极少数情况下),可以使用以下方法:

plots = get(gca, 'children');
zdata = get(plots, 'zdata');
if isscalar(plots)
    zdata = {zdata}; end

maxZ = cellfun(@(x)max(x(:)), zdata);
minZ = cellfun(@(x)min(x(:)), zdata);

我想您还没有发现axis命令。发件人:

三维轴

冻结纵横比属性。将打印框纵横比模式和数据纵横比模式属性设置为手动

例如:

> surf(peaks);
> axis vis3d
…不再进行随机轴缩放更改

如果确实需要提取数据的最小/最大值(极少数情况下),可以使用以下方法:

plots = get(gca, 'children');
zdata = get(plots, 'zdata');
if isscalar(plots)
    zdata = {zdata}; end

maxZ = cellfun(@(x)max(x(:)), zdata);
minZ = cellfun(@(x)min(x(:)), zdata);

您是否尝试过轴相等
axis vis3d
axis equal
对我不起作用(但对于
surf(peaks)
),但
axis vis3d
确实起作用。有趣。如果您将此作为答案发布,我可以接受。您是否尝试过
axis equal
axis vis3d
axis equal
对我不起作用(但对于
surf(peaks)
),但
axis vis3d
确实起作用。有趣。如果你把这个作为回答,我可以接受。