最近几天,我在3D-等值面图上尝试交换Y轴和Z轴时遇到了麻烦。我想交换Y轴和Z轴以便可视化它并且能够更清楚地讨论结果。我记得过去我曾经用两种方式交换Y轴和Z轴:
1)使用轴柄:
yy = get(gca, 'YData');
zz = get(gca, 'Zdata');
set(gca, 'YData', zz, 'ZData', yy);
我遇到的错误如下:''轴'类中没有'Ydata'属性。'
2)通过切换isosurface-command中的数据进行交换:
等值面(X,Z,Y,calulated_rotor,iso_value) 我收到以下错误:'X,Y和Z必须是MESHGRID生成的矩阵。'
但是,使用meshgrid生成X,Y,Z。我试图解决这个错误:
[X Z Y] = meshgrid(x, z, y) % instead of [X Y Z] = meshgrid(x, z, y)
% recalculate the velocity matrices VX, VY, VZ: 3D-matrices , code not provided
calculated_rotor_2 = rotor(X, Z, Y, VX, VZ, VY) % instead of calculated_rotor = rotor(X,Y,Z, VX, VY, VZ)
isosurface(X, Z, Y, calculated_rotor_2, iso_value) % instead of isosurface(X, Y, Z, calculated_rotor, iso_value)
然而,这并未显示第一个转子I的旋转版本。它显示错误的计算转子。所以我的主要问题仍然存在:如何以正确的方式交换Y轴和Z轴?
我的Matlab版本是R2010a。
答案 0 :(得分:0)
'YData'
属性属于Surfaceplot,而不是Axes,这就是您收到错误的原因。例如,mesh()
调用返回该Surfaceplot的句柄(请查看绘图函数的文档)。您还可以查询'Children'
的{{1}}属性以获取此句柄(如果gca
确实是保存表面的轴的句柄)。
至于gca
电话......它是卷曲吗?如果是,您应该知道更改参考框架的相对方向(例如,交换 y 和 z 轴)会与矢量场的Curl方向混淆;好吧,它与矢量场本身相混淆......