45 views (last 30 days)

Hi I have a data formated in CSV file (unfortunately I cannot upload it cause it exceeds 5MB even if I compressed the file). However, my data is composed of 3 coordinates system XYZ which is assigned to a certain energy.

e.g.

X Y Z Energy

0 0 1 48

having a dimension of 100 x 100 x 100

I tried this following code

###

Array=csvread('processedata.csv');

X = Array(:, 1);

Y = Array(:, 2);

Z = Array(:, 3);

data = Array(:, 4);

colormap turbo

s=scatter3(X,Y,Z,20,data,'filled','s','MarkerEdgeColor','none') % draw the scatter plot

alpha(s,.1)

ax = gca;

ax.XDir = 'reverse';

%view(-31,14)

% create and label the colorbar

cb = colorbar;

caxis([0 38.1])

xlabel('X')

ylabel('Y')

zlabel('Z')

cb.Label.String = 'Dose';

###

and the output is this

but I wanted to show like this instead with a grid box and slices so that could see what is happeninng inside the box

Walter Roberson
on 22 Jan 2021

If you have a regular grid of x y z points, then pull out the columns and reshape() and possibly permute() into an appropriate sized 3D grid of energy.

If the points are not regular, then pull out min and max x y z and linspace() vectors and ndgrid() to construct matrices X Y Z of coordinates to approximate the data at. Then scatteredInterpolant(x, y, z, Energy) and evaluate the resulting function at X Y Z to get a grid of energy.

Either way, you now have a 3D grid of energy that you can use slice() with.

Walter Roberson
on 30 Jan 2021

You have a lot of points, about half a million. Trying to plot them all would be really slow. The range is about -2800 to +89 . Even just an isosurface at +80 is slow as there are over 10000 irregularly-placed points above +80. It is difficult to see any structure in the data. I recommend that you

histogram(DG(:), 100)

and look at the distribution (and keep in mind that only 1% population would still be ~5000 points)

Walter Roberson
on 6 Feb 2021 at 9:56

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

Start Hunting!
## 0 Comments

Sign in to comment.