[問題] 有沒誰看過這個語法X(idx==1,1),請指教

看板MATLAB作者 (鋼鐵人史塔克)時間13年前 (2012/06/06 22:24), 編輯推噓2(206)
留言8則, 5人參與, 最新討論串1/2 (看更多)
大家好,我看完以下這個範例,大致都懂 只是對於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

06/06 22:32, , 1F
kmeans分為第1類的點取出來並畫紅色點
06/06 22:32, 1F

06/06 22:33, , 2F
== 就是幫你從頭比較到尾了
06/06 22:33, 2F

06/06 22:40, , 3F
這種是把==加在Matrix內就可以同時比較兩個矩陣嗎?
06/06 22:40, 3F

06/06 22:42, , 4F
這個語法好怪.
06/06 22:42, 4F

06/06 23:04, , 5F
很正常啊x(idx==1) 可以想成idx為1的位置在x是什麼值
06/06 23:04, 5F

06/06 23:05, , 6F
idx =[1 2 3 4 5];x =[6 7 8 9 10]; x(idx==3)就是8
06/06 23:05, 6F

06/06 23:51, , 7F
這是matlab的特色,不錯用
06/06 23:51, 7F

06/07 23:00, , 8F
補充五樓的 idx==3 會得到 [0 0 1 0 0],所以x([0 0 1 0 0]是8
06/07 23:00, 8F
文章代碼(AID): #1FpsWXAf (MATLAB)
文章代碼(AID): #1FpsWXAf (MATLAB)