根据数据颜色领域

时间:2017-07-11 18:44:09

标签: matlab

我有一个622x5阵列,其中第1列到第4列包含球体的x,y,z和半径,第5列包含球体表面上的平均力。我想要做的是使用x,y,z,r生成球体,然后使用阵列的最后一列为球体着色。我知道如何使用以下代码在matlab中创建球体:

[x y z] = sphere;
AA=load('C_Lx_Avg.txt');

nn=length(AA(:,1));
for i=1:nn
  surf(x*AA(i,4)+AA(i,1),y*AA(i,4)+AA(i,2),z*AA(i,4)+AA(i,3));
  if (i==1); hold on; end;
end

shading interp
axis equal
camlight
lighting phong

set(gca,'FontSize',[16],'FontWeight','bold')
print fig01 -dpdf

但我不知道该怎么做是使用数组的最后一列来为球体着色。

1 个答案:

答案 0 :(得分:0)

您可以修改surf命令以指定'CData' property,如下所示:

surf(x*AA(i,4)+AA(i,1), y*AA(i,4)+AA(i,2), z*AA(i,4)+AA(i,3), AA(i,5).*ones(size(x)));

这将根据轴的当前colormap为每个球体提供一种颜色,从最低值到最高值进行映射,您可以使用colorbar显示该颜色。使用AA = [1 1 1 0.5 3; 0 0 0 1 1];并添加颜色栏,这就是我得到的内容:

enter image description here