[英]3D Plotting with (or without) mesh in MATLAB
我有一个函数G(a,b)
,它接受两个输入并返回一个数字。 该函数本身涉及根据a和b的值使用ode45和某些矩阵的特征值。 我想看一个3D图(理想情况下是G
与a
和b
的2D热图,但我知道MATLAB可以扭曲轴和东西)。
我尝试了2种方法。 首先是嵌套的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
为什么我不喜欢这样:我最终得到三个向量/数组: A
B
和G
由于G
是2D,所以我不能只做surf(A,B,G)
。 所以我的下一个想法是网格:
a = 0:1:40;
b = 0:.1:10;
[A,B] = meshgrid(a,b);
Value = G(A,B);
现在可以理解,我的错误是我的函数需要数字a
, b
而不是数组。
因此,我对如何最好地解决此问题感到困惑,任何建议将不胜感激!
我想到两种解决方案。 首先 ,使用来实现G
功能.
操作员。 例如,如果有任何a*b
,请将其更改为a.*b
,或将a/b
更改为a./b
。
其次 ,如果您的函数可以以符号格式实现,则可以使用ezmesh
以简单格式绘制函数。
总之,您问题的解决方案取决于G
函数的实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.