使用已定义函数的MATLAB 3D绘图

时间:2014-08-21 14:37:12

标签: matlab graph plot 3d

我在一个单独的文件中定义了一个函数,它接受七个参数并输出一个值。我想创建一个3D图,它将随着两个参数而改变,我真的很想知道如何做到这一点。

所以说我的函数是用Ruth调用的(a,b,c,d,e,f),我希望修复c-f并根据a和b的值绘制输出值。任何人都可以指导我吗?非常感谢。

提前致谢!

1 个答案:

答案 0 :(得分:0)

使用meshgrid生成您感兴趣的a和b范围内的点网格。然后在每个(a,b)点对评估函数,形成2D矩阵。然后使用meshsurf根据a,b自变量绘制矩阵。这是一个例子,功能非常简单:

function out = myfunc(a,b,c)
out = c + a.*b;

[a,b] = meshgrid(-50:50, -50:50);
c = 10;
z = myfunc(a, b, c);
mesh(a, b, z);

请注意,在我的情况下,我已经将我的函数编写为“向量化”,这意味着它将接受向量或输入数组并对整个数组进行操作。如果你不是,那么你必须用a和b上的嵌套循环来评估你的函数,如下所示:

z = zeros(size(a));
for ii=1:size(a,1)
    for jj=1:size(a,2)
        z(ii,jj) = Ruth(a(ii,jj), b(ii,jj), c, d, e, f);
    end
end