如果函数F可用,则很容易绘制冲浪图,即
x=1:0.1:4;
y=1:0.1:4;
[X,Y]=meshgrid(x,y);
Z=sin(X).^2+cos(Y).^2;
surf(X,Y,Z);
view(2) ;
在我的情况下,我使用最小二乘法计算F函数: 例如,我有x和y向量
x = [0 9.8312 77.1256 117.9810 99.9979];
y = [0 2754.5 4043.3 5376.3 5050.4];
这两个向量的线性函数由
定义F= [1149.73 , 37.63];
因此估计等于
z= [ones(5,1) x']*F';
是
z = [1149.73 1519.67 4051.96 5589.35 4912.65];
如果是绘制的
plot(x,y,'b.');
hold on;plot(x,y,'b-');
hold on; plot(x,z,'-r');
线性z(红线)正确显示。现在我想用网格绘制所有可能的x和y组合,我需要为所有输入都有一个网格 [X,Y] = meshgrid(x,y);
但如何使Z矩阵显示函数Z的强度图? Z假设具有接近z值的高强度和远离它的较小值。我想应该得到这样的东西
由于
P.S:使用pinv(最小二乘法)计算F.
答案 0 :(得分:1)
您必须插入分散的数据以在网格上绘制它。以下是x,y和z向量的简单示例
xi=linspace(min(x),max(x),100)
yi=linspace(min(y),max(y),100)
[XI YI]=meshgrid(xi,yi);
ZI = griddata(x,y,z,XI,YI);
contourf(XI,YI,ZI)