1

私はマトリックスを持っています。

Mat_=[ x y z intensity];

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

ここで、強度に関してポイントを色分けして分類したいと思います。6 クラスまたは 10 クラスが必要だとします。また、カラーバーで表示したいです。それを行う最善の方法は何ですか。

4

2 に答える 2

2

を使用して、必要な数のクラスターkmeansにクラスター化できます。intensity次に、クラスタリング強度から取得したインデックスに従ってクラスタリングします ( と の間に[x y z]1 対 1 の対応があると仮定します)。次に、各クラスターに異なる色を割り当ててから表示します。[x y z]intensity

于 2013-04-16T03:16:04.483 に答える
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

ここに画像の説明を入力

于 2013-04-16T08:16:51.183 に答える