MATLAB Answers


Surf plot of my data

Asked by Jérôme
on 2 Apr 2013


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
% 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.

2 Answers

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.


Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!