我有一个矩阵。

Mat_=[ x y z intensity];

e.g., intensity= rand(100,1)

现在我想要在强度方面着色和计算我的观点。 说我想要6或10节课。 我也想用colorbar来展示它。 什么是最好的方法。

===============>>#1 票数:2

您可以使用kmeansintensity聚类到所需数量的聚类中。 然后根据从聚类强度获得的指数聚类[xyz] (假设[xyz]intensity之间存在一对一的对应关系)。 然后可以为每个群集分配不同的颜色然后显示。

===============>>#2 票数:2 已采纳

您可能想要这样:请注意,我没有将数据聚合成碎片,我只是将它们绘制在颜色条中,并使用它们具有的强度值。 你可能想要改变它,但我认为它很难做到;)(提示: mod可能有帮助)。

PD:好的kmeans也会起作用

% Create data
[X,Y] = meshgrid(-2:.2:2, -2:.2:2);                                
Z = X .* exp(-X.^2 - Y.^2);

intensity= rand(size(X));

%Get max and min
m=min(min(intensity));
M=max(max(intensity));

%set colorbar property
caxis([m M]); 
colorbar();

%get colors by intensity
colors=zeros(size(X,1),size(X,2),3);
cmap=colormap('jet'); %change for other colormaps
for i=1:size(X,1)
    for j=1:size(X,2)
        colors(i,j,:)=cmap(round(intensity(i,j)*(size(cmap,1)-1)+1),:);     
    end
end
%plot
hold on
for i=1:size(X,1)
    for j=1:size(X,2)
       plot3(X(i,j),Y(i,j),Z(i,j),'.','Color',colors(i,j,:));  
    end
end
hold off

在此输入图像描述

  ask by Shahgee translate from so

未解决问题?本站智能推荐: