# 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:

```
plot3(x(:,1),x(:,2),y,'.')
```

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:

```
contour(x(:,1),x(:,2),y);
```

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.

## Answers:

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.