【问题标题】:How to determine if axes are 2D or 3D in Matlab?Matlab中如何判断坐标轴是2D还是3D?
【发布时间】:2011-12-25 06:49:10
【问题描述】:

如上所述,以编程方式确定 Matlab 坐标区对象是 2D 还是 3D 图的最简单方法是什么?

【问题讨论】:

  • 所有轴都是 3d,但 Nzbuu 的回答表明您将其视为 2d。
  • 是的,我知道这一点,但是当您在 3D 而不是 2D 中查看轴上使用缩放时会发生什么不同,这就是我需要知道的原因。

标签: matlab properties plot axes


【解决方案1】:

来自axis 函数的文档:

V = axis 返回一个包含当前绘图缩放比例的行向量。如果当前视图是二维的,V 有四个组件;如果是 3-D,V 有六个组件。

因此,您可以通过调用获得轴的维度

plot_dim = numel(axis)/2;

它将返回 2 用于 2D 和 3 用于 3D。

如果你有一个axaxes 对象的引用,你可以通过将ax 传递给axis 来修改上面的代码:

plot_dim = numel(ax)/2;

【讨论】:

    【解决方案2】:

    检查[az,el] = view 的输出。如果是 2D,那么el == 90

    【讨论】:

    • 虽然从技术上讲,我的问题的答案是[az,el] = view(hax),其中hax 是感兴趣轴的句柄。谢谢!
    • example 可以看出,还有更多的 2D 案例(以及它们的旋转版本)
    • Jeff Fessler (stackoverflow.com/a/40723959/6651650) 的回答是一个更强大的解决方案。
    • 您可以旋转一个 3D 绘图以拥有el=90,它仍然是一个 3D 绘图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 2016-09-16
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多