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

时间:2017-01-16 10:49:45

标签: matlab plot 3d limit axis

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

您可以输入surf(peaks)来自行测试。轴在0-50和0-60之间不断变化。我正在使用R2011a。

您是否有任何建议如何获取合成的3d-lines / 3d-surface-mesh的3d-min / max值,以便能够手动设置轴限制?

由于

1 个答案:

答案 0 :(得分:2)

我认为你还没有发现命令axis。来自the documentation

  

轴vis3d

     

冻结宽高比属性。将绘图框宽高比模式和数据宽高比模式属性设置为手动。

示例:

> 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);