如何在Matlab中确定坐标轴是2D还是3D?

4

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


3
所有轴都是三维的,但 Nzbuu 的回答会表明您正在将其视为二维。 - Edric
是的,我知道这一点,但在三维视图中使用缩放时会发生与二维不同的情况,这就是为什么我需要知道的原因。 - crobar
2个回答

4

axis函数的文档中可以了解到:

V = axis 返回一个包含当前绘图缩放比例的行向量。如果当前视图为二维,则V有四个分量;如果为三维,则为六个分量。

因此,你可以通过调用以下方式获取轴的尺寸:

plot_dim = numel(axis)/2;

当输入2D的时候,它将返回2;当输入3D时,它将返回3

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

plot_dim = numel(ax)/2;

2

检查[az,el] = view的输出。如果它是二维的,则el == 90


虽然从技术上讲,我的问题的答案是[az,el] = view(hax),其中hax是感兴趣的轴的句柄。谢谢! - crobar
正如您可以从这个例子看到的那样,还有更多的2D情况(以及它们的旋转版本)。 - Amro
Jeff Fessler的答案(https://dev59.com/Nl3Ua4cB1Zd3GeqP8w7A#40723959)是一个更加健壮的解决方案。 - Paul Wintz
1
您可以将3D图旋转到el=90,它仍然是一个3D图。 - Cris Luengo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接