我有一个函数G
,它接受两个输入并返回一个数字。函数本身涉及使用某些矩阵的ode45和特征值,具体取决于a和b的值。我想看一个3D图(理想情况下是a
vs b
和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
的2D热图,但我知道MATLAB可以扭曲轴和东西。
我尝试了两种方法。第一个是嵌套for循环
A
为什么我不喜欢这样:我最终得到三个向量/数组:B
G
和G
。由于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}}而不是数组。
所以我对如何最好地接近这一点感到困惑,任何建议都将不胜感激!
答案 0 :(得分:0)
我想到了两个解决方案。 首先,使用G
运算符实现.
函数。例如,如果有a*b
,请将其更改为a.*b
,或a/b
将其更改为a./b
。
第二,如果您的功能可以用符号格式实现,则可以使用ezmesh
以简单格式绘制函数。
总而言之,您问题的解决方案取决于G
函数的实现。