extract fig into surf(x,y,z)
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
feynman feynman
el 4 de Dic. de 2024
Comentada: Image Analyst
el 30 de Dic. de 2024
There's a .fig that plots n z(x) curves, each of which corresponds to 1 y value (n=3 in the illustration). The y values are known data. I don't have those z(x) data besides this .fig. How to convert this fig into a surf(x,y,z) plot?

5 comentarios
Walter Roberson
el 29 de Dic. de 2024
If hfig is dots but the code succeeds in creating a surface, then the implication is that the dots were created as line() objects with 'linestyle', 'none' instead of being created as scatter() objects. Creating dots as line() objects instead of as scatter() objects is fairly common.
The code gathers all of the XData and YData of the line() objects and ignores what the 'linestyle' is set to for the line() objects.
Respuesta aceptada
Star Strider
el 4 de Dic. de 2024
One way is tto enlarge the y-values to a matrix using repmat and then offset them by adding a different constant to each column (in this example).
x = linspace(0, 1).';
z = sin(2*pi*x*(1:3));
y = ones(size(z,1),1);
xm = repmat(x, 1, size(z,2));
ym = repmat(y, 1, size(z,2));
figure
plot3(xm, ym, z)
grid
colormap(turbo)
title('‘plot3’ Using ‘Original’ Y-Values')
figure
surf(xm, ym, z)
grid on
colormap(turbo)
title('‘surf’ Using ‘Original’ Y-Values')
ym = ym + (0:2); % Create ‘Offset’ ‘Y’-Values
figure
surf(xm, ym, z)
grid on
colormap(turbo)
title('‘surf’ Using ‘Offset’ Y-Values')
.
2 comentarios
Image Analyst
el 30 de Dic. de 2024
@DGM posted his as a comment, not an Answer, so you can't accept his or even vote for it. Only @Star Strider posted an actual answer so unless DGM changes/moves his to an Answer you can only accept Star's.
Más respuestas (0)
Ver también
Categorías
Más información sobre Annotations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





