在MATLAB中用颜色渐变绘制点云

时间:2016-08-25 16:57:07

标签: matlab

我有一个3D矩阵,其值介于01之间。

矩阵从(1,1,1)(k,k,k)。例如,M(3,2,5) = 0.25

我想在3D图形中将此矩阵绘制为点云,其中每个点将使用从透明(0)到黑色或其他颜色(1)的渐变进行着色。

我不确定你是否可以在matlab中使用alpha ...如果没有,那么0将只是白色。

1 个答案:

答案 0 :(得分:1)

您可以将scatter3与矩阵中的值一起使用,指定点的颜色,如果背景为白色,则白色到黑色渐变会提供与透明度相同的效果。如果您有一个大小为M的矩阵[k k k]要获得积分的x,y,z,您可以使用ind2sub,如下所示:

>>[x,y,z] = ind2sub([k k k],1:numel(M));

您可以将scatter3与此x,y,z一起使用为:

>>colors = [M(1:end)]'*[1 1 1]; % Get colors from black to white 
>>scatter3(x,y,z,36,colors);