2012-02-08 74 views
1

我正在MATLAB上使用二次曲面f(w0,w1),并使用了meshgrid来创建它。下面的代码:获取函数值

phi = 0.01; 
M = 16; 

[w0,w1] = meshgrid(-2:0.1:8 , -10:0.1:0); 

f = (0.5+phi)*(w0.^2 + w1.^2) + w0.*w1*cos(2*pi/M) + 2*w1*sin(2*pi/M) + 2; 

所以我想知道我怎么能得到函数f值在点(-1.9,-0.9),例如。

感谢

回答

1

您既可以在函数f直接插入你的价值观:

w0 = -1.9; 
w1 = -0.9; 
f = (0.5+phi)*(w0.^2 + w1.^2) + w0.*w1*cos(2*pi/M) + 2*w1*sin(2*pi/M) + 2; 

或使用在X和Y指数:

x = -2:0.1:8; 
y = -10:0.1:0; 
[w0,w1] = meshgrid(x, y); 
f = (0.5+phi)*(w0.^2 + w1.^2) + w0.*w1*cos(2*pi/M) + 2*w1*sin(2*pi/M) + 2; 
f(find(y==-0.9), find(x==-1.9)); 

两种方法将返回:

ans = 5.1452

1

假设F(-1.9,-0.9)= F(W0,W1)

[row0, col0] = find(w0==-1.9); 
[row1, col1] = find(w1==-0.9); 
ans = f(row1(1), col0(1)); 
0

我认为最好的方法应该使用annonymous功能:

f = @(x,y) (0.5+phi)*(x.^2 + y.^2) + x.*y*cos(2*pi/M) + 2*y*sin(2*pi/M) + 2 

f(-1.9,0.9) 

X )