我正在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),例如。
感謝
我正在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),例如。
感謝
您既可以在函數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
假設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));
我認爲最好的方法應該使用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 )