How to plot 3-D grid data in scatter plot?
4 次查看(过去 30 天)
显示 更早的评论
Hello Community,
I have 2 datasets from a 3-D simulation model. I can easily read these datasets into Matlab and see the data. I now want to plot these 2 datasets on a scatter plot. I am struggling to get this data plotted.
I load the grid with:
>> A=load('PERM2.mat')
A =
struct with fields:
Node: [1×1 struct]
Same for 2nd dataset.
When I do:
>> plot(A.Node.Value,B.Node.Value)
Error using plot
Data cannot have more than 2 dimensions.
And this is where I am stuck. Any suggestion what I am doing wrong or what I need to do to plot these 2 datasets? I have attached the 2 datasets.
Thanks,
Ferry
1 个评论
Jorg Herwanger
2021-8-17
编辑:Jorg Herwanger
2022-1-14
You can reshape both 3-D arrays into vectors of length nx*ny*nz.
PERM = load('PERM2.mat')
PERM_Vector = reshape(PERM.Node.Value,[51*107*57,1,1])
PHIE = load('PHIE.mat')
PHIE_Vector = reshape(PHIE.Node.Value,[51*107*57,1,1])
plot(PHIE_Vector,PERM_Vector)
In the example, I get the dimensions of the 3D array (51 x 107 x 57) using size(PERM.Node.Value).
I think I know what you want to do: you can now establish a relationship between PHIE and PERM from the crossplot.
采纳的回答
KSSV
2020-10-13
编辑:KSSV
2020-10-13
I think your mat files has 3D matrices. You need to use cpcolor or surf to plot them.
load PERM2.mat ;
A = Node.Value ;
[m,n,p] = size(A) ;
for i = 1:p
pcolor(A(:,:,i))
shading interp
colorbar
drawnow
end
If you have x, y you can provide them in pcolor.
2 个评论
KSSV
2020-10-13
What do you mean by cross plot? Won't surf/ pcolor work for you?
In case are you looking to plot a slice..have a look on slice function.
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Scatter Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!