【问题标题】:3D Plotting with (or without) mesh in MATLAB在 MATLAB 中使用(或不使用)网格进行 3D 绘图
【发布时间】:2017-11-14 03:33:27
【问题描述】:

我有一个函数G(a,b),它接受两个输入并返回一个数字。该函数本身涉及使用 ode45 和某些矩阵的特征值,具体取决于 a 和 b 的值。我想看一个 3D 图(最好是 Gab 的 2D 热图,但我知道 MATLAB 可以扭曲轴和其他东西)。

我尝试了两种方法。第一个是嵌套的for循环

i=1
j=1
for a = 0:1:40 ;
   for b = 0:.1:10 ;
      Value(i,j) = G(a,b);
      B(j)=b;
      j=j+1 ;
    end
    A(i) = a;
    i=i+1 ;
end

为什么我不喜欢这个:我最终得到三个向量/数组:ABG。由于G 是二维的,我不能只做surf(A,B,G)。所以我的下一个想法是网格:

a = 0:1:40;
b = 0:.1:10;
[A,B] = meshgrid(a,b);
Value = G(A,B);

现在我的错误是可以理解的,我的函数需要数字 a,b 而不是数组。

所以我有点不知道如何最好地解决这个问题,任何建议都将不胜感激!

【问题讨论】:

    标签: matlab plot 3d


    【解决方案1】:

    我想到了两个解决方案。 首先,使用. 运算符实现G 函数。比如有a*b,就改成a.*b,或者a/b改成a./b

    第二,如果你的函数可以用符号格式实现,你可以用ezmesh以简单的格式来绘制你的函数。

    总而言之,您的问题的解决方案取决于G 函数的实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多