Plot a 3d domain with colors determined by 3d array
19 ビュー (過去 30 日間)
古いコメントを表示
I have 3 vectors: X(N), Y(N), Z(N) that define a space in 3D, let's call it D = [X(1),X(N)] x [Y(1),Y(N)] x [Z(1),Z(N)]. I have a matrix with values at each point in D, called out(N,N,N). How can I plot the space D as points with colors determined by the values given in out(N,N,N)?
2 件のコメント
Cris LaPierre
2021 年 1 月 15 日
What type of 3D plot are you creating? Scatter? Line? Contour? Mesh? Surface?
回答 (1 件)
Cris LaPierre
2021 年 1 月 15 日
編集済み: Cris LaPierre
2021 年 1 月 16 日
I would use the following syntax for scatter3
Note that if C is a vector with length equal to the length of X, Y, and Z, then the values in C are linearly mapped to the colors in the current colormap.
Convert out into a vector using the colon operator: C = out(:);
To work, X, Y, and Z will have to be the same size as out. You can use meshgrid for that.
Here's a simple example. Note that the color of the markers has nothing to do with their x,y or z locations. It is coming from C.
X=1:5;
Y=11:15;
Z=0.1:0.1:0.5;
[x,y,z]=meshgrid(X,Y,Z);
% Create random values for the color
C = rand(size(x));
scatter3(x(:),y(:),z(:),[],C(:))
colorbar
参考
カテゴリ
Help Center および File Exchange で Surface and Mesh Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!