在三维等面图中互换Y轴和Z轴



最近几天,我在尝试在3D等面图上交换Y轴和Z轴时遇到了麻烦。我想把Y轴和z轴交换一下,这样可以更直观,也可以更清楚地讨论结果。我记得在过去我曾经用两种方式交换Y轴和z轴:

1)使用轴柄:

    yy = get(gca, 'YData');
    zz = get(gca, 'Zdata');
    set(gca, 'YData', zz, 'ZData', yy);

我遇到的错误如下:'在'axes'类中没有'Ydata'属性。'

2)通过交换isisosurface中的数据来交换-命令:

等值面(X, Z, Y, calulated_rotor, iso_value)我得到以下错误:'X, Y和Z必须是由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)

然而,这显示的不是我计算的第一个转子的旋转版本。显示转子计算错误。所以我的主要问题仍然是:我如何以正确的方式交换Y轴和Z轴?

我的Matlab版本是R2010a。

'YData'属性属于Surfaceplot,而不是坐标轴,所以这就是你得到错误的原因。例如,该Surfaceplot的句柄由mesh()调用返回(请查看绘图函数的文档)。你也可以查询gca'Children'属性来获得这个句柄(如果gca真的是保持表面的轴的句柄)。

对于rotor呼叫…是卷发吗?如果是,你应该意识到改变参考系的相对方向(例如交换yz轴)会扰乱矢量场旋度的方向;它与向量场本身相混淆。

相关内容

  • 没有找到相关文章

最新更新