如何计算meshgrid所有点的非显式函数的值?

时间:2014-02-17 20:28:55

标签: matlab

我们说我有一个功能

f = @(x,y) g(x,y)

g不明确。应在输入xy值后以数字方式计算。

如何在点

计算和保存此函数的所有值
[x,y] = meshgrid(0:0.1:1,0:pi/10:2*pi);

我致电f[x,y],但它无效。

1 个答案:

答案 0 :(得分:1)

您有两种方法可以做到这一点。你的函数g应该与矩阵一起使用,或者你应该逐个给出值

function eval_on_mesh()

f1 = @(x,y) g1(x,y);
f2 = @(x,y) g2(x,y);

[x,y] = meshgrid(0:0.1:1,0:pi/10:2*pi);

%# If your function work with matrices, you can do it like here
figure, surf(f1(x,y));

%# If your function doesnt, you should give the values one by one
sol = zeros(size(x));
for i=1:size(x,1)
    for j=1:size(x,2)
        sol(i,j) = f2(x(i,j),y(i,j));
    end
end
figure, surf(sol);
end

function res = g1(x, y)
res = x.^2 + y.^2;
end

function res = g2(x, y)
res = x^2 + y^2;
end