Slice with temperature and position

1 view (last 30 days)
Hi all, I have a standart cubic grid x, y, z and I have a temperature associated to each triplet. So my database is in 4D (x,y,z,T). I was able to visualize the temperature with scatter3, but it is not the representation I want...
I would like to use slice() or a function like this to be able to visualise different plane inside the data. But when I try to call the slice function, they ask for volumetric data insteat of array. I search for ways to transform my data in volumetric data, but I didn't found anything...
My question is: is there a way to transform my data into a volumetric data so that I can have a sliced representation (using slice() or another similar function).
My data is linked to the message and
x=A(:,1);
y=A(:,2);
z=A(:,3);
T=A(:,4);
Thank you in advance for your help!

Accepted Answer

Bjorn Gustavsson
Bjorn Gustavsson on 7 May 2019
To use slice you first have to re-interpolate your data to a regular 3-D grid. Depending on your matlab-version you can use: griddata, TriScatteredInterp, scatteredInterpolant. They have slightly different calling syntax. This is how I would use scatteredInterpolant:
F = scatteredInterpolant(A(:,1:3), T,'natural');
X = linspace(min(A(:,1)),max(A(:,1)),59);
Y = linspace(min(A(:,2)),max(A(:,2)),61);
Z = linspace(min(A(:,1)),max(A(:,1)),63);
[X,Y,Z] = meshgrid(X,Y,Z);
T3D = F(X,Y,Z);
slice(X,Y,Z,T3D,12,32,43),shading flat
HTH
  4 Comments
Gab D
Gab D on 8 May 2019
This is how I got the idea to try the griddedInterpolant() function before the scatterInterpolant(). I agree that the help function and the SEE ALSO tab are very usefull!
Thank you again for your help!

Sign in to comment.

More Answers (0)

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!