Re: [問題] 一段覺得很怪的code已回收
※ 引述《hanjing (自知者明)》之銘言:
: dat為n*k的矩陣
: n=length(dat(:,1)); (定義n)
: q=dat(:,qi); (定義q)
: % Sorted index of q %
: qs=0; (第一個迴圈的起始值)
: for i=1:length(q) (我覺得這行是多餘的)
因為迴圈裡面還是有使用到i所以不能拿掉
: for i_=1:length(q) (第一個迴圈開始)
怕搞混可以把i_改成其他變數例如:ii kk等等
: temp=0; (第二個迴圈的起始值)
: for j=1:length(q) (第二個迴圈開始)
: if (q(i_)>q(j))|(i_>=j&q(i_)==q(j)) (?1)
這是說 如果 q(i_)>q(j)或是(i_大於等於j且q(i_)等於q(j))時
q(j)這寫法表q資料裡面的第j個element
: temp=temp+1; (第二個迴圈的規則)
設定此時的temp值
: end; (第二個迴圈結束)
: end;
: if temp==i (?2)
根據上面迴圈計算出的temp值 如果等於 i 執行下面的運算
(就是跟最外面的迴圈數等值時)
: qs=[qs;i_]; (?3)
此時qs存成[qs;i_]的陣列 這是為了紀錄下此時的i_值
就是temp==i這件事發生時 資料的位置
用這樣寫法會把每一次符合條件下的新i_值放到qs資料矩陣中的下一筆
而不會去覆蓋到前面已經存好的資料
: end;(把end移到這個位置比較不會搞錯在哪一個迴圈層)
: end;
: end;
: qs=qs(2:length(qs)); (?4)
把qs中第一筆資料拿掉(因為第一筆資料是起始值0)
: q=q(qs); (?5)
根據計算出的qs 來抓出q的資料 ( qs此時是q的index)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 134.208.0.181
※ 編輯: juzn 來自: 134.208.0.181 (05/20 15:09)
推
05/20 16:55, , 1F
05/20 16:55, 1F
→
05/20 17:00, , 2F
05/20 17:00, 2F
→
05/20 17:01, , 3F
05/20 17:01, 3F
※ 編輯: juzn 來自: 134.208.0.181 (05/20 17:03)
※ 編輯: juzn 來自: 134.208.0.181 (05/20 17:06)
推
05/20 17:20, , 4F
05/20 17:20, 4F
→
05/20 17:21, , 5F
05/20 17:21, 5F
→
05/20 17:22, , 6F
05/20 17:22, 6F
恩 一開始給的值是qs=0 此時是 1*1的資料矩陣
然後temp==i的時候 因為qs=[qs;i_] 所以資料變成 qs=[0;i_]
當第二次條件成立時 qs=[0;i_(第一次的);i_(第二次的)]以此類推
目的就是使儲存i_不會去覆蓋到上一筆資料
※ 編輯: juzn 來自: 134.208.0.181 (05/20 17:31)
推
05/20 17:32, , 7F
05/20 17:32, 7F
我表達的不好,我是要說先給個小筆dat 例如:dat=[1 4 7;2 5 8;3 6 9];
然後讓qi=1~3中隨意常數做測試
→
05/20 17:33, , 8F
05/20 17:33, 8F
→
05/20 17:34, , 9F
05/20 17:34, 9F
推
05/20 17:36, , 10F
05/20 17:36, 10F
→
05/20 17:37, , 11F
05/20 17:37, 11F
→
05/20 17:37, , 12F
05/20 17:37, 12F
推
05/20 17:40, , 13F
05/20 17:40, 13F
→
05/20 17:41, , 14F
05/20 17:41, 14F
→
05/20 17:42, , 15F
05/20 17:42, 15F
→
05/20 17:43, , 16F
05/20 17:43, 16F
→
05/20 17:43, , 17F
05/20 17:43, 17F
→
05/20 17:45, , 18F
05/20 17:45, 18F
推
05/20 17:47, , 19F
05/20 17:47, 19F
※ 編輯: juzn 來自: 134.208.0.181 (05/20 17:50)
→
05/20 17:48, , 20F
05/20 17:48, 20F
→
05/20 17:50, , 21F
05/20 17:50, 21F
→
05/20 17:51, , 22F
05/20 17:51, 22F
→
05/20 17:52, , 23F
05/20 17:52, 23F
→
05/20 17:52, , 24F
05/20 17:52, 24F
→
05/20 17:54, , 25F
05/20 17:54, 25F
推
05/20 20:17, , 26F
05/20 20:17, 26F
→
05/20 20:20, , 27F
05/20 20:20, 27F
→
05/20 20:23, , 28F
05/20 20:23, 28F
→
05/20 20:24, , 29F
05/20 20:24, 29F
推
05/20 23:33, , 30F
05/20 23:33, 30F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):