3D plot matlab from X Y Z data and integrating a slice function
10 ビュー (過去 30 日間)
古いコメントを表示
Denxybel Montinola
2021 年 1 月 22 日
コメント済み: Walter Roberson
2021 年 2 月 6 日
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
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/496293/image.jpeg)
but I wanted to show like this instead with a grid box and slices so that could see what is happeninng inside the box
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/496298/image.png)
0 件のコメント
採用された回答
Walter Roberson
2021 年 1 月 22 日
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.
5 件のコメント
Walter Roberson
2021 年 2 月 6 日
I think you might need to project your 4D data (three independent, one dependent) into 3D so that you have a chance of seeing continuous changes in a recognizable way. isosurfaces look just too irregular to make sense out of.
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!