contour for scatter data

29 views (last 30 days)
Pegah
Pegah on 27 Feb 2023
Edited: Walter Roberson on 1 Aug 2023
Hi every one,
I have 3 columns of data X, Y, and T. I used "svd" function for T and now I need to visulaize T considering X, and Y. How could I use "contour" or "contourf" for this data? the problem is, I cann't use "meshgrid" function because the grid that I used is not organised.
Thanks in advance,

Answers (2)

Walter Roberson
Walter Roberson on 27 Feb 2023
Edited: Walter Roberson on 28 Feb 2023
  6 Comments
Voss
Voss on 7 Mar 2023
@Pegah: Include 'EdgeColor','none' in the call to patch():
filename = 'export.csv';
xyzt = readmatrix(filename, 'Range', "7:512");
faceinfo = readmatrix(filename, 'Range', "515:969");
p = patch( ...
'Faces', faceinfo + 1, ...
'Vertices', xyzt(:,1:3), ...
'FaceColor', 'interp', ...
'FaceVertexCData', xyzt(:,4), ...
'EdgeColor', 'none');
view(3)
Pegah
Pegah on 7 Mar 2023
It works, Thank you so much.

Sign in to comment.


John D'Errico
John D'Errico on 28 Feb 2023
Edited: John D'Errico on 28 Feb 2023
Let me give an example of how to use a tricontouring tool for scattered data.
x = rand(100,1);
y = rand(100,1);
zfun = @(x,y) sin(x + y).*cos(x-2*y) - x;
z = zfun(x,y);
% Note the use of an alpha shape to generate the triangulation.
% This is important, as otherwise, there will be significant edge
% artifacts.
S = alphaShape(x,y);
S.Alpha = .3;
plot(S)
That is merely the triangulation. Again, it is based purely on the variables x and y.
trisurf(S.alphaTriangulation,x,y,z)
tricontour(S.alphaTriangulation,x,y,z,10)
hold on
plot(x,y,'ro')
colorbar

Categories

Find more on Contour Plots in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!