我有一个3D矩阵,其值介于0
和1
之间。
矩阵从(1,1,1)
到(k,k,k)
。例如,M(3,2,5) = 0.25
。
我想在3D图形中将此矩阵绘制为点云,其中每个点将使用从透明(0
)到黑色或其他颜色(1
)的渐变进行着色。
我不确定你是否可以在matlab中使用alpha ...如果没有,那么0
将只是白色。
答案 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);