Plotting a 3D surface

7 ビュー (過去 30 日間)
Maria de Arizaga Barrachina
Maria de Arizaga Barrachina 2018 年 8 月 21 日
Hello everyone, I am trying to plot a 3D surface and colouring it according to the values of a 4th variable (vector). This vector contains the values of the 4th variable for each node of the surface. For instance:
% Surface definition (9 elements, 16 *nodes*)
x = linspace(0,1,3);
y = linspace(0,1,3)';
[X,Y] = meshgrid(x,y);
Z = (X.^3) - 3*X.*(Y.^2);
% 4th dimension (temperature for each node)
T = [0, 0, 0, 0, 0, 10, 10, 10, 0, 10, 20, 20, 0, 10, 20, 30];
Other possibility would be treating the nodes as voxels and plot each voxel with its corresponding temperature color, but I have not found a way to do it either.
Thank you so much. M.

回答 (1 件)

Yuvaraj Venkataswamy
Yuvaraj Venkataswamy 2018 年 8 月 22 日
Try this,
if true
x = linspace(0,1,3);
y = linspace(0,1,3)';
[X,Y] = meshgrid(x,y);
Z = (X.^3) - 3*X.*(Y.^2);
T = [0, 0, 0, 0, 0, 10, 10, 10, 0, 10, 20, 20, 0, 10, 20, 30];
surf(X,Y,Z,T)
colorbar
end
  2 件のコメント
Maria de Arizaga Barrachina
Maria de Arizaga Barrachina 2018 年 8 月 22 日
Thanks Yuvaraj! I already solved the problem. The answer is close to that, but the 4th variable has to written so its dimensions match the other variables, that would be:
T = [0, 0, 0, 0;...
0 10, 10, 10;...
0, 10, 20, 20;...
0, 10, 20, 30];
Yuvaraj Venkataswamy
Yuvaraj Venkataswamy 2018 年 8 月 22 日
Welcome

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSurface and Mesh Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by