在MATLAB中使用(或不使用)网格进行3D绘图

时间:2017-11-14 03:33:27

标签: matlab plot 3d

我有一个函数G,它接受​​两个输入并返回一个数字。函数本身涉及使用某些矩阵的ode45和特征值,具体取决于a和b的值。我想看一个3D图(理想情况下是a vs bi=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 的2D热图,但我知道MATLAB可以扭曲轴和东西。

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

A

为什么我不喜欢这样:我最终得到三个向量/数组:B GG。由于surf(A,B,G)是2D,我不能只做a = 0:1:40; b = 0:.1:10; [A,B] = meshgrid(a,b); Value = G(A,B); 。所以我的下一个想法是网格:

a

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

所以我对如何最好地接近这一点感到困惑,任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:0)

我想到了两个解决方案。 首先,使用G运算符实现.函数。例如,如果有a*b,请将其更改为a.*b,或a/b将其更改为a./b

第二,如果您的功能可以用符号格式实现,则可以使用ezmesh以简单格式绘制函数。

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