【问题标题】:Get min/max-value of 3d-plot获取 3d 图的最小/最大值
【发布时间】:2017-01-16 19:34:38
【问题描述】:

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

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

您对如何获得组合 3d-lines/3d-surface-meshes 的 3d-min/max 值有什么建议,以便能够手动设置轴限制?

谢谢

【问题讨论】:

  • 你试过axis equal吗? axis vis3d?
  • axis equal 对我不起作用(但对surf(peaks)),但axis vis3d 确实起作用。有趣的。如果您将此作为答案发布,我可以接受。

标签: matlab plot 3d limit axis


【解决方案1】:

我想你还没有发现命令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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-14
    • 2021-07-31
    • 1970-01-01
    • 2021-06-02
    • 2018-07-07
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    相关资源
    最近更新 更多