Gaussian Contour plot of 3 variables - MATLAB
I have generated a 3D plot that resembles Gaussian distribution, with random variables Y, X1, and X2 (1000x1) vectors. Y is on the vertical axis, X1, and X2 are horizontal.
Specifically, this is the code I used for the plot:
The graph that has been created has this form:
What I also want to produce is something like that:
But, when I use this code:
I receive a message that:
Error using contour (line 48) Z must be at least a 2x2 matrix.
I really don't get how to fix that problem, I assume Z is the Y but I don't understand why it has to be 2x2 at least. Anyhow, any help would be much appreciated.
You cannot create a contour over scattered data, you need a grid. It is possible to interpolate the data on a grid of
NxN samples in the XY domain, using
griddata (here the domain is
[-2,2]x[-2,2] as an example):
N = 200; xi = linspace(-2, 2, N); yi = linspace(-2, 2, N); [XI, YI] = meshgrid(xi, yi); ZI = griddata(x(:,1), x(:,2), y, XI, YI, 'v4'); contour(XI,YI,ZI);
More info on how to interpolate scattered data here.