Matlab中的4D可视化(表面和网格)

3

我有四个变量:x,y,z,t。我想以表面的形式展示(x,y,z),并使表面的颜色由t决定。我想将“t”分配给颜色条。现在,颜色条对应z,我想让它对应我的第4个变量“t”。

感谢您的任何帮助。


你能发布一下你的代码吗?请参考http://stackoverflow.com/help/mcve - lhcgeneva
X=1:10; Y=1:14; [x y]=meshgrid(X,Y);z=RESULT(:,1); t = RESULT(:,2) surf(x,y,z), colorbar - Emily
不要在评论中发布代码。通过按下问题下方标签旁边的“编辑”按钮来编辑问题。 - Adriaan
1个回答

5
那很容易:只需使用
surf(x, y, z, t)

根据文档

surf(X,Y,Z,C)使用C定义颜色。 MATLAB ® 对这些数据执行线性变换以从当前的颜色图中获取颜色。

以下是一个示例:

x = linspace(0,pi,50);
y = linspace(0,pi/2,50);
z = bsxfun(@times, sin(x), sin(y.')); %'
t = bsxfun(@minus, x, y.'); %'// example data;
surf(x,y,z,t); %// draw surface
colorbar %// show colorbar

enter image description here


1
使用bsxfun,即使它不被调用,也是很棒的。 - Adriaan
@Adriaan 我脑海中浮现的第一个想法是使用可分离函数作为示例。这也是 bsxfun 的作用 :-) - Luis Mendo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接