作者ironmanstock (鋼鐵人史塔克)
看板MATLAB
標題[問題] 有沒誰看過這個語法X(idx==1,1),請指教
時間Wed Jun 6 22:24:27 2012
大家好,我看完以下這個範例,大致都懂
只是對於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