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

7 visualizzazioni (ultimi 30 giorni)
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 Commenti
Philippe Corner
Philippe Corner il 8 Ago 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 il 9 Ago 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.

Accedi per commentare.

Risposte (1)

KSSV
KSSV il 9 Ago 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 Commento
Philippe Corner
Philippe Corner il 10 Ago 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

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by