Borrar filtros
Borrar filtros

How to assign values to a mesh based on xyzc points?

5 visualizaciones (últimos 30 días)
Philippe Corner
Philippe Corner el 8 de Ag. de 2021
Comentada: Philippe Corner el 10 de Ag. de 2021
load('variables.mat')
[xq, yq, zq] = meshgrid(min(x):12.5:max(x),min(y):12.5:max(y),min(z):2:max(z));
cq = nan(size(xq));
[~, pos] = ismember([x,y,z],[xq(:),yq(:),zq(:)],'rows');
cq(pos) = c;
The code creates a mesh grom the x y z data attached. I want to assign a c value to the mesh points that coincide with my original xyzc and left the rest of the points as nan value from "cq".
My indexes from ismember does not work because i havent been able to create a mesh that coincides with all the points from my xyz.
Thanks in advance,
  3 comentarios
Philippe Corner
Philippe Corner el 8 de Ag. de 2021
Hi Yazan, thanks for your comment. No I dont want to create a big mesh, I want to try to guarantee that I could get the points from my initial data. Other Idea that I'm getting is to maybe interpolate data to associate a c value to the points of the mesh that I got.
You see that the question is about giving c values to the mesh I create, so the approach may be like using my xyzc information to give a c value to my new xq yq zq points and be sure that outside my xyz, all the cq values are NaN..
Adam Danz
Adam Danz el 9 de Ag. de 2021
The biggest problem is that your data are floating decimals with very high precision. For example,
format long
z(end)
ans =
1.898261677911120e+03
so it's very unlikely that you'll generate perfect matches with a simple grid.
Without knowing the main goal I can't suggest an alternative.

Iniciar sesión para comentar.

Respuestas (1)

KSSV
KSSV el 9 de Ag. de 2021
load('variables.mat') ;
nx = length(unique(x)) ;
ny = length(unique(y)) ;
m = 100 ; n = 100 ;
xi = linspace(min(x),max(x),m) ;
yi = linspace(min(y),max(y),n) ;
[X,Y] = meshgrid(xi,yi) ;
Z = griddata(x,y,z,X,Y) ;
C = griddata(x,y,c,X,Y) ;
surf(X,Y,Z,C)
shading interp
colorbar
  1 comentario
Philippe Corner
Philippe Corner el 10 de Ag. de 2021
Mm no, probably I did no express myself correctly. I asked again the same question but with all the data here:
As you can see im proposing to use an interpolation now to solve it, since the positions of the x,y,z dots may be "impossible" to match with a regular grid.
Thanks a lot KSSV

Iniciar sesión para comentar.

Categorías

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by