使用2个更改变量在Matlab中创建3D绘图

时间:2012-03-14 03:13:32

标签: matlab for-loop 3d matrix while-loop

我正在尝试在Matlab中创建一个3D图。

从Y和Z的数据集开始,我有一个很长的问题。操作很多,归结为一个简单的y / z问题

y=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
z=[5, 10, 15, 20, 25, 30, 35, 40, 45, 50];


x=(y_new)/(z_new)

大约有100行方程式操纵y和z,成为两个新变量y_new和z_new。我想创建一个x,y,z的3d图。我想要(1,5)和(1,10),(2,5),(2,10)等x值。

我设置问题的方法是仅使用y = 1和z = 5。过去几个小时我一直在尝试使用for循环或while循环,但是我遇到了问题。

如果有人可以帮助我,我会感激时间和精力!

1 个答案:

答案 0 :(得分:1)

您不需要使用for循环。相反,请使用旨在解决此问题的内置函数meshgrid()

Here's a tutorial from 'abbe' at MIT详细介绍了如何使用f(x,y)创建函数meshgrid()的3D绘图。

引用模糊:

  

3D绘图

     

制作三维图时,通常会有一个z变量   是x和y的函数。当你想要x和y变化时   范围,你需要一个矩阵(而不是一个矢量)的x和y得到一个   完整的域,涵盖那些x的所有不同组合   和某些范围内的y值。一个名为meshgrid的函数将设置x   和y矩阵就像这样。 x矩阵改变x向下行   并使其在列中保持不变,y矩阵改变y in   列并使它在行间保持不变,因此您可以获得所有组合   如果使用两个矩阵,则为x和y。