How to create a continuos surface in 3D
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Francesco
el 6 de Abr. de 2014
Comentada: Francesco
el 6 de Abr. de 2014
Hi, I have this .mat file that is a 8950x3 matrix, the 1st column contains the x-coordinates, the 2nd one the y-coordinates and the third contains the z-coordinates. I would draw a continuos surface like the following figure
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/160308/image.gif)
The only difference is that z is not the result of a function but is a vector. Is it possible? Thanks to all!
0 comentarios
Respuesta aceptada
Mischa Kim
el 6 de Abr. de 2014
How about doing it from scratch?
x = -2:0.1:2;
y = -2:0.1:2;
[X,Y] = meshgrid(x,y);
Z = X.*exp(-(X - Y.^2).^2 - Y.^2);
surf(X,Y,Z)
3 comentarios
Mischa Kim
el 6 de Abr. de 2014
Yes it is. If you want to generate directly from the matrix from the .mat file, this should work:
M = sortrows(m,[1 2]) % m is the matrix from the .mat file
nc = numel(unique(M(:,1)));
x = reshape(M(:,1),[],nc);
y = reshape(M(:,2),[],nc);
z = reshape(M(:,3),[],nc);
surf(x,y,z)
Más respuestas (1)
Youssef Khmou
el 6 de Abr. de 2014
Try to use this method :
% X is the 8950*3 matrix
x=X(:,1)'*X(:,1); % 8950x8950
y=X(:,2)'*X(:,2);
z=X(:,3)'*X(:,3);
figure; surf(X,Y,Z)
3 comentarios
Youssef Khmou
el 6 de Abr. de 2014
Editada: Youssef Khmou
el 6 de Abr. de 2014
use :
X=X';
and perform the code above
Ver también
Categorías
Más información sobre Surface and Mesh Plots 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!