[問題] 要怎麼讀出變數

看板MATLAB作者 (嘿嘿)時間11年前 (2012/11/20 18:05), 編輯推噓3(304)
留言7則, 3人參與, 最新討論串1/1
一個應該是很簡單的問題,只是我不知道怎麼處理~~= =" 以下是我程式的簡化版 clear n=4; A=zeros(n); k=zeros(n,1); A(1,2)=1; A(1,3)=1; A(2,1)=1; A(2,3)=1; A(3,1)=1; A(3,2)=1; A(1,4)=1; A(4,1)=1; k(1,1)=3; k(2,1)=2; k(3,1)=2; k(4,1)=1; r=5/16; for j=1:4; p(j,1)=(k(j,1))/(sum(k(:,1))); end for j=1:4; if r > p(j,1) c=min(j) %<--------問題在這邊!! end end ============== 當我 r > p(j,1)的迴圈裏面 我想找出最小的j,意思是p(j,1)=[0.375,0.25,0.25,0.125] r=5/16=0.31... 所以r會大於p(2,1),p(3,1),p(4,1) 我希望要得 j 值是 r 遇到第一個小於 r 的 p(j,1)的 j !! 在這個例子就是,我希望他能讀出 j=2 請問有什麼方法可以解決??? =========== 或是 for j=1:4; if r > p(j,1) c=min(j) %<------如何一成功執行到這步驟就停止???? end end =========== 這是我想到的狀況~~ -- ◢) 伴隨著五彩光圈,蝴蝶所到之處,惡鬼全成了碎塊, ◥◣◤ ◢◥█)) 蝴蝶優雅飛去,碎塊才來得及落下◥) ◥) ◎ ◢█ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.66.158 ※ 編輯: icrtstyle 來自: 140.119.66.158 (11/20 18:13)

11/20 20:05, , 1F
break?
11/20 20:05, 1F

11/20 20:23, , 2F
find(r > p, 1)
11/20 20:23, 2F

11/20 20:26, , 3F
break可以
11/20 20:26, 3F

11/20 20:31, , 4F
請問CBET大,我不太明白你方法的意思,我試過p(:,1)跟
11/20 20:31, 4F

11/20 20:32, , 5F
p(j,1)這兩個,結果都不是我要的結果~~
11/20 20:32, 5F

11/20 21:00, , 6F
那一整塊 for 迴圈用 find(r > p, 1) 就可以了
11/20 21:00, 6F

11/20 21:14, , 7F
了解,感謝~~
11/20 21:14, 7F
文章代碼(AID): #1GgrNf8M (MATLAB)