看板 MATLAB 關於我們 聯絡資訊
大家好,我看完以下這個範例,大致都懂 只是對於X(idx==1,1),X(idx==1,2)這段很不解 照道理看,這是比對200x1 的idx Matrix的每一項是否為1,如果是1,就畫X座標的紅點, X是一個200x2的Matrix, 可是我找不到這個語法,怎麼樣的語法可以讓這一行從第一項開始比對idx Matrix 與 X Matrix 一直loop到完呢? 我不知我的解讀有沒有錯,有人看得懂這一行的idx==1的功用嗎? 請指教我 謝謝 X=[randn(100,2)+ones(100,2);randn(100,2)-ones(100,2) ]; opts = statset('Display','final'); [idx,ctrs] = kmeans(X,2,'Replicates',1005,'Options',opts,'emptyaction','drop'); subplot(2,1,1); plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ hold on plot(X(idx==2,1),X(idx==2,2),'g.','MarkerSize',12); -- 老闆 我 ██ ▆▆▆▆ ██◤ ██▇ ██ 金 ◥▂▂▂ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.241.67
ht15trep:kmeans分為第1類的點取出來並畫紅色點 06/06 22:32
ht15trep:== 就是幫你從頭比較到尾了 06/06 22:33
ironmanstock:這種是把==加在Matrix內就可以同時比較兩個矩陣嗎? 06/06 22:40
ironmanstock:這個語法好怪. 06/06 22:42
okgogogo:很正常啊x(idx==1) 可以想成idx為1的位置在x是什麼值 06/06 23:04
okgogogo:idx =[1 2 3 4 5];x =[6 7 8 9 10]; x(idx==3)就是8 06/06 23:05
sunev:這是matlab的特色,不錯用 06/06 23:51
H45:補充五樓的 idx==3 會得到 [0 0 1 0 0],所以x([0 0 1 0 0]是8 06/07 23:00