我在MATLAB中有一个由许多3d线组成的3d图(由line([...],[...],[...],...)
组成)。如果我用鼠标和旋转工具(图形窗口中的可点击图标)旋转绘图,MATLAB将一直重新调整轴。我知道可以使用axis([...])
手动调整轴限制,但我不知道3d线或表面对象的最小值/最大值。
您可以输入surf(peaks)
来自行测试。轴在0-50和0-60之间不断变化。我正在使用R2011a。
您是否有任何建议如何获取合成的3d-lines / 3d-surface-mesh的3d-min / max值,以便能够手动设置轴限制?
由于
答案 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);