基本上,我有一个函数f(X,Y),它将为我给出的每个X,Y返回一个值。在matlab中是否有任何函数可以传递函数f,X,Y的范围,以便绘制一个三维图形,显示给定范围内所有值的f(沿着z轴)的大小。在matlab中绘制2参数函数的结果(3D图形)
ezplot3,这样做,但它只需要一个参数't'。我对matlab非常陌生,并且尽我所能快速学习它,但我无法找到关于此的很多信息。任何帮助,将不胜感激
基本上,我有一个函数f(X,Y),它将为我给出的每个X,Y返回一个值。在matlab中是否有任何函数可以传递函数f,X,Y的范围,以便绘制一个三维图形,显示给定范围内所有值的f(沿着z轴)的大小。在matlab中绘制2参数函数的结果(3D图形)
ezplot3,这样做,但它只需要一个参数't'。我对matlab非常陌生,并且尽我所能快速学习它,但我无法找到关于此的很多信息。任何帮助,将不胜感激
好了,这就是我要去为:http://www.mathworks.com/help/matlab/ref/ezsurf.html
如果我这样做
ezsurf('f(x,y)');
我得到的三维图形我想要的。
谢谢反正!
请记住,与matlab,你从来没有真正绘制“功能”;你正在绘制数组/矢量。因此,不是试图绘制g = f(X,Y),而是实际绘制向量X,Y和g,其中X和Y是原始输入,而g是包含输出的向量。
我有一个很难可视化你想要绘制但基本上,你可以按照任何标准的MATLAB绘图例子正是如:http://web.cecs.pdx.edu/~gerry/MATLAB/plotting/plotting.html
它不会产生一个三维图,但我已经找到了2D散点图这样的任务面前有用:
scatter(x, y, 5, z)
哪里z
是在该点的函数的值(x, y)
会产生一种类似于你想要的。它可能不如完整的3D情节那样美丽,但可以用于良好的效果。
参见:
下面是一些(很丑陋)的代码,我放在一起展示的区别:
j=1;
y = -100:1:100;
for i = -100:1:100
y = [y -100:1:100];
count = 0;
while count < 202;
x(j) = i;
j = j+1;
count = count + 1;
end
end
z = (abs(x) + abs(y));
figure(1)
scatter(x, y, 10, z)
h=colorbar;
figure(2)
ezsurf('(abs(x) + abs(y))')
好,是的,我知道,我一直在寻找类似的东西ezplot,在那里我给他们我的功能,它会自动采样和打印它...我想要的就像是一个等高线图或任何3d图,我可以在这两个参数x和y上看到函数的变化 – Nicomoto