【问题标题】:Creating a 3D Plot In Matlab With 2 Changing Variables在 Matlab 中创建具有 2 个变化变量的 3D 图
【发布时间】:2012-03-14 03:13:31
【问题描述】:

我正在尝试在 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 循环,但我被卡住了。

如果有人可以帮助我,我将不胜感激!

【问题讨论】:

  • 我不明白你在哪里卡住了。您是否只需要一个元素操作,即x=y_new./z_new?或者是y-newz_new 标量,所以你想要x(i)=y_new/z_new
  • 例如,整个问题通过 y=1 和 z=5 完成。我得到一个 x 值。我只是在寻找一种方法来改变 y 十个不同的时间,改变 z 不同的时间,并获得 100 个 x 值。

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


【解决方案1】:

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

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

引用简介:

3D 绘图

当您制作 3 维绘图​​时,您通常有一个 z 变量 是 x 和 y 的函数。当您希望 x 和 y 在某些范围内变化时 范围,您需要 x 和 y 的矩阵(而不是向量)来获得 涵盖这些 x 的所有不同组合的完整域 和某个范围内的 y 值。一个名为 meshgrid 的函数将设置 x 和像这样的 y 矩阵。 x 矩阵改变 x 向下的行 并在列中保持恒定,并且 y 矩阵改变 y 列并在各行之间保持不变,因此您可以获得所有组合 如果使用这两个矩阵,则为 x 和 y。

【讨论】:

  • 非常感谢,这正是我想要的!我看了几个小时,但这篇文章很混乱。您发布的文章非常清晰简洁。再次感谢您!
  • 别担心,伙计。乐意效劳。 :)
猜你喜欢
  • 2020-09-16
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 1970-01-01
  • 2015-05-09
  • 2021-10-07
  • 2018-12-27
  • 2021-09-13
相关资源
最近更新 更多