Plotting 3D data set over x-y plane (x,y,z coordinates)
6 views (last 30 days)
Show older comments
Hi,
I have a set of (x,y,z) vectors where (x) and (y) are coordinates and (z) is the magnitude at that coordinate point. I have been trying to plot these to make a heatmap/contour type plot, but have not been able to get the correct results. My latest attempt goes like this:
if true
% XYZ = [busCoordsX, busCoordsY, busVolts];
[X,Y,Z] = meshgrid(busCoordsX, busCoordsY, busVolts);
vq = griddata(busCoordsX, busCoordsY, busVolts, XYZ, X, Y, Z);
figure; surf(X,Y,vq);
end
busCoordsX, busCoordsY and busVolts are 130x1 vectors (double).
The error I'm getting is:
Error using scatteredInterpolant The number of data point locations should equal the number of data point values.
Error in griddata>useScatteredInterp (line 188) F = scatteredInterpolant(inargs{1}(:),inargs{2}(:),inargs{3}(:), ...
Error in griddata (line 125) vq = useScatteredInterp(inputargs, numarg, method, 'none');
Error in plotVoltage3D (line 54) vq = griddata(busCoordsX, busCoordsY, busVolts, XYZ, X, Y, Z);
Please help!
Thanks.
0 Comments
Answers (2)
Adam Filion
on 16 Oct 2013
Edited: Adam Filion
on 16 Oct 2013
Try:
F = scatteredInterpolant(busCoordsX,busCoordsY,busVolts);
[xx,yy]=meshgrid(busCoordsX,busCoordsY);
zz = F(xx,yy);
contour(xx,yy,zz)
surf(xx,yy,zz)
0 Comments
See Also
Categories
Find more on Annotations 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!