我正在尝试在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循环,但是我遇到了问题。
如果有人可以帮助我,我会感激时间和精力!
答案 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。