MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Jérôme
on 2 Apr 2013

Hello;

I have data in the following format : [X1 X2 F] where X1, X2 and F are all column vectors. F is a function evaluated on X1 and X2. I do not know what function it is, I only have the end result.

I successfully plotted my data using

% trainset contains the data as presented above scatter3(trainset(:,1),trainset(:,2),trainset(:,3),30,trainset(:,3)); % I use the value of F for the coloring of the datapoints

However I would prefer a real surface plot, using surf(). But the format of my data is not suited to surf, apparently.

I thought about using meshgrid to make the grid matrices for X1 and X2, but since I don't know the function F, I won't be able to evaluate it on those grids ; I'm stuck with the dataset I'm provided with, in which F is already evaluated for some pairs of X1 and X2.

I might be missing something obvious but I really don't see how to get a surface plot with that kind of "blackbox" data.

Thanks in advance for your insights!

*No products are associated with this question.*

Answer by Walter Roberson
on 2 Apr 2013

Use griddata(). Or use triscatteredinterp to create an interpolator and interpolate it over a mesh created with ndgrid()

Answer by Omid Adljuy
on 5 Apr 2013

Probably the **TriScatteredInterp** command will help you do what you're looking for.

See *MATLAB Help* for mor details and examples.

This tutorial video shall also help.

## 0 Comments