我有一個矩陣X,我想用kmeans函數繪製它。我想要的:如果行在第4列中的值爲1,我希望它是方形的如果行在第4列中的值爲2,我希望它+形狀,但如果該行的值爲0第5列它必須是藍色的,如果第5列中的行的值爲1,它必須是黃色的我該如何繪製? MATLAB
(你不需要使用這些確切的顏色和形狀,我只是想區分這些)這並沒有工作:
plot(X(idx==2,1),X(idx==2,2),X(:,4)==1,'k.');
謝謝!!
我有一個矩陣X,我想用kmeans函數繪製它。我想要的:如果行在第4列中的值爲1,我希望它是方形的如果行在第4列中的值爲2,我希望它+形狀,但如果該行的值爲0第5列它必須是藍色的,如果第5列中的行的值爲1,它必須是黃色的我該如何繪製? MATLAB
(你不需要使用這些確切的顏色和形狀,我只是想區分這些)這並沒有工作:
plot(X(idx==2,1),X(idx==2,2),X(:,4)==1,'k.');
謝謝!!
基於關於kmeans
documentation page我提出這個「嵌套」邏輯例如:
X = [randn(100,2)+ones(100,2);...
randn(100,2)-ones(100,2)];
opts = statset('Display','final');
% This gives a random distribution of 0s and 1s in column 5:
X(:,5) = round(rand(size(X,1),1));
[idx,ctrs] = kmeans(X,2,...
'Distance','city',...
'Replicates',5,...
'Options',opts);
hold on
plot(X(idx==1,1),X(idx==1,2),'rs','MarkerSize',12)
plot(X(idx==2,1),X(idx==2,2),'r+','MarkerSize',12)
% after plotting the results of kmeans,
% plot new symbols with a different logic on top:
plot(X(X(idx==1,5)==0,1),X(X(idx==1,5)==0,2),'bs','MarkerSize',12)
plot(X(X(idx==1,5)==1,1),X(X(idx==1,5)==1,2),'gs','MarkerSize',12)
plot(X(X(idx==2,5)==0,1),X(X(idx==2,5)==0,2),'b+','MarkerSize',12)
plot(X(X(idx==2,5)==1,1),X(X(idx==2,5)==1,2),'g+','MarkerSize',12)
上面的代碼是一個最小工作例如,給定的統計工具箱是可用的。
關鍵功能是繪圖的嵌套邏輯。例如:
X(X(idx==1,5)==0,1)
內X(idx==1,5)
選擇用於其中idx==1
的X(:,5)
這些值。從這些中,只考慮0
的值:X(X(...)==0,1)
。根據問題的邏輯,這應該是一個藍色方塊:bs
。
你有四種情況,因此有四個額外的情節線。
不確定明白你的意思。但我認爲你可以簡單地使用一個循環,並根據你的規格爲每一行選擇顏色。如果這是你的意思,那就試着回來。 – innoSPG
我不想在MATAB中使用垂褶。怎麼樣,有4個參數,矩陣中每個不同值的組合都有不同的形狀和顏色。 – user2574059