how to distinguish two surfaces in 3D surface plotting?
5 views (last 30 days)
Please needs help in plotting two sets of 3D data (data 1 from experiment and data 2 simulation). I am thinking in using surface or mesh functions with hold on, but at the same time i want to distinguish one surface from the other since they are overlapping at some instances (for example, the mesh line for one surface are thicker and darker or one surface is more transparent than the other or ...). My other question is if there is a function gives surface difference or surface error between the two surfaces.
I really appreciate your suggestions. Thanks Aziz
Image Analyst on 15 Nov 2015
MATLAB does not have good 3D data visualization tools. About all you can do is cutaway views with slice() or isosurface renderings with isosurface().
If your third dimension has 3 planes/slices/channels, then you can treat it as an image and use imfuse() or imshowpair().
surf() is used for 2D data, not 3D data. In other words, you'd use it when you have an array like data(row, column), not a 3D array like data(i,j,k) where you have three indexes (dimensions). surf() produces a 2.5 D surface rendering where the value at each (row,column) location is plotted as a height above a flat plane. Note: this does not mean that the data is now magically 3D - it's still 2D and has two indexes.
If you want true 3D rendering and volume visualization, way more sophisticated than MATLAB, see Avizo