获取功能值

时间:2012-02-08 02:05:30

标签: matlab

我在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;

所以我想知道如何在点(-1.9,-0.9)获得函数f的值,例如。

由于

3 个答案:

答案 0 :(得分: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 :(得分: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));

答案 2 :(得分:0)

我认为最好的方法应该是使用匿名函数:

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)的